Byla vydána dubnová aktualizace aneb nová verze 1.89 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Vypíchnout lze, že v terminálu lze nově povolit vkládání kopírovaného textu stisknutím středního tlačítka myši. Ve verzi 1.89 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Proton, tj. fork Wine integrovaný v Steam Play a umožňující v Linuxu přímo ze Steamu hrát hry určené pouze pro Windows, byl vydán ve verzi 9.0-1 (𝕏). Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled her pro Windows běžících díky Protonu také na Linuxu na stránkách ProtonDB.
Byla vydána verze 1.78.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání na GitHubu. Vyzkoušet Rust lze například na stránce Rust by Example.
Služba Dropbox Sign (původně HelloSign) pro elektronické podepisování smluv byla hacknuta.
Byla vydána nová major verze 8.0 textového editoru GNU nano (Wikipedie). Podrobný přehled novinek a oprav v oznámení v diskusním listu info-nano nebo v souboru ChangeLog na Savannah. Volbou --modernbindings (-/) lze povolit "moderní" klávesové zkratky: ^C kopírování, ^V vložení, ^Z vrácení zpět, … Tato volba je aktivována také pokud binárka s nano nebo link na ni začíná písmenem "e".
Před 60 lety, 1. května 1964, byl představen programovací jazyk BASIC (Beginners' All-purpose Symbolic Instruction Code).
Byla vydána nová verze 12.0 minimalistické linuxové distribuce (JeOS, Just enough Operating System) pro Kodi (dříve XBMC) a multimediálního centra LibreELEC (Libre Embedded Linux Entertainment Center). Jedná se o fork linuxové distribuce OpenELEC (Open Embedded Linux Entertainment Center). LibreELEC 12.0 přichází s Kodi 21.0 "Omega".
Microsoft vydal novou velkou aktualizaci 2404.23 v září 2019 pod licencí SIL Open Font License (OFL) zveřejněné rodiny písma Cascadia Code pro zobrazování textu v emulátorech terminálu a vývojových prostředích.
OpenTofu, tj. svobodný a otevřený fork Terraformu vzniknuvší jako reakce na přelicencování Terraformu z MPL na BSL (Business Source License) společností HashiCorp, bylo vydáno ve verzi 1.7.0. Přehled novinek v aktualizované dokumentaci. Vypíchnout lze State encryption.
Spouštět webový prohlížeč jenom kvůli nákupu kávy? Nestačí ssh? Stačí: ssh terminal.shop (𝕏).
/home/user1/dir/dir/dir/dir/file /home/user2/dir/dir/file /home/user3/dir/dir/dir/dir/dir/file /etc/dir/dir/file /mnt/disk/dir/dir/dir/file ..... .....Chtěl bych ty soubory zazálohovat, ale netuším jak přinutit tar aby zachoval práva a vlastníka adresářů. Spouštím to jako
tar -czvf archiv.tgz -T filelist.txtU souborů v archivu jsou ty práva v pořádku, ale u adresářů tar nastaví jako vlastníka root:root a práva 0755. Prostě mi jde o to, jak z relativně rozsáhlého filesystému vyzobat soubory a ty zazálohovat i s cestou včetně práv nadřazených adresářů. Poradíte něco?
archive="/home/zaloha/$(cat /etc/hostname)_$(date '+%Y-%m-%d').tar.gz" dir=$(mktemp -d) rsync -a --files-from=/home/zaloha/files.txt / $dir cd $dir tar -czvf $archive . chmod 600 $archive cd .. rm -r $dirAle přijde mi to jako docela prasečina ty soubory někam dočasně kopírovat aby se zachovaly práva adresářů i po rozbalení. Nevíte o nějakém čistějším řešení? Možná nějak cpio a rourou přímo do taru? ...zkusím ješte poexperimentovat.
cpio -ov < filelist.txt > archiv.cpioRozbaliť:
cpio -idv < archiv.cpio'o' je 'output to archive'
Ak cesty k súborom obsahujú medzeru/tab/... tak jednotlivé mená súborov by mali byť oddelené nulovym bajtom a nie EOL a cpio potom treba pridať flag '0'
Skombinovať sa to dá pekne s find ... -print resp. find ... -print0.
A prípadne sa dá pri rozbaľovaní pridať ešte
'm' - zachovať file modification timecpio -ov < filelist.txt | gzip > archiv.cpio.gza rozbalit
zcat archiv.cpio.gz | cpio -idvpřípadně se dá použít přepínač
--no-absolute-filenames
aby se to nerozbalilo na původní místo ale do aktuálního adresáře. Doporučuju ale mít v tom seznamu souborů taky všecky adresáře a podadresáře v cestě k souboru. Jinak se nemusí zachovat jejich původní práva.
find Thunderbird | cpio -vo | gzip > Thunderbird.cpio.gznebo
cd Thunderbird; find | cpio -vo | gzip > ../Thunderbird.cpio.gzNěkteré verze taru prý neumí číst soubory ze seznamu tam se cpio hodí použít, ale na obyčejné rekurzivní balení všeho je tar lepší.
-p, --preserve-permissions extract information about file permissions (default for superuser)
Dělám to jako root, tak ten přepínač nemá nanic vliv vůbec.Nepomohlo by přidat --same-owner (viz zde)?
#!/bin/bash # mapfile číta po riadkoch, tak nebude problém s medzerami v názvoch súborov # Ak ale súbory majú v názve "\n", chcelo by to iný prístup mapfile -t < list # Vyrobíme si ten zoznam adresárov for F in "${MAPFILE[@]}" ; do dirname "$F" ; done | sort -u >list-with-dirs # Pridáme zoznam súborov cat list >>list-with-dirs # --no-recursion zabezpečí, že sa v archíve budú iba požadované súbory a adresáre bez obsahu sudo tar -czf archive.tgz -C source --no-recursion -T list-with-dirs
mkdir -p /tmp/a/b/c/d/e/f touch /tmp/a/b/c/d/e/f/file find /tmp/a -type f > /tmp/list mapfile -t < /tmp/list for F in "${MAPFILE[@]}" ; do dirname "$F" ; done | sort -uto vypíše jenom ten poslední adresář
/tmp/a/b/c/d/e/fAby to fungovalo tak by ten výstup měl vypadat nějak takto:
/tmp /tmp/a /tmp/a/b /tmp/a/b/c /tmp/a/b/c/d /tmp/a/b/c/d/e /tmp/a/b/c/d/e/f
filelist=/tmp/filelist.txt dirlist=/tmp/dirlist.txt IFS="\n" t=$(mktemp) cat $filelist | while read f; do cd "$(dirname $f)" until [ "$(pwd)" = "/" ]; do pwd >> $t cd .. done done sort -u < $t > $dirlist cat $dirlist $filelist > /tmp/list.txt rm $t $dirlist tar -czvf archive.tgz --no-recursion -T /tmp/list.txtToto mi jakžtakž funguje, ale myslím že použitelné to bude maximálně do pár desítek/stovek souborů protože ta rychlost je tragická. Tak teď nevím co je menší zlo. Jestli toto nebo ten rsync :-/
cd
a pwd
. Hlavný problém je ale v tom, že sa každý adresár vyhodnocuje stále dokola znova a znova. Toto by mohlo pomôcť:
declare -A processed mapfile -t < list for F in "${MAPFILE[@]}" ; do F="$(dirname "$F")" while [ "$F" != "." -a "$F" != "/" ] ; do test -z "${processed[$F]:+_}" || break echo "$F" processed[$F]=1 F="$(dirname "$F")" done done | sort >list-with-dirs cat list >>list-with-dirs sudo tar -czf archive.tgz -C source --no-recursion -T list-with-dirsP.S.:
sort -u
by už nemal byť potrebný, možno ani sort
.
Tiskni Sdílej: