Byla vydána verze 2.0.0 programovacího jazyka Kotlin (Wikipedie, GitHub). Oficiálně bude představena ve čtvrtek na konferenci KotlinConf 2024 v Kodani. Livestream bude možné sledovat na YouTube.
Byla vydána nová major verze 27.0 programovacího jazyka Erlang (Wikipedie) a související platformy OTP (Open Telecom Platform, Wikipedie). Přehled novinek v příspěvku na blogu.
Byla vydána nová verze 1.8.0 svobodného multiplatformního softwaru pro konverzi video formátů HandBrake (Wikipedie). Přehled novinek v poznámkách k vydání na GitHubu. Instalovat lze také z Flathubu.
Microsoft představil nové označení počítačů Copilot+. Dle oznámení se jedná se o počítače poskytující funkce umělé inteligence. Vedle CPU a GPU mají také NPU (Neural Processing Unit). Uvnitř představených Copilot+ notebooků běží ARM čipy Qualcomm Snapdragon X Elite nebo X Plus.
Příspěvek na blogu Codean Labs rozebírá zranitelnost CVE-2024-4367 v PDF.js, tj. mj. prohlížeči PDF souborů ve Firefoxu. Při otevření útočníkem připraveného pdf souboru může být spuštěn libovolný kód v JavaScriptu. Vyřešeno ve Firefoxu 126.
Lazygit byl vydán ve verzi 0.42.0. Jedná se o TUI (Text User Interface) nadstavbu nad gitem.
K open source herní konzole Picopad přibyla (𝕏) vylepšená verze Picopad Pro s větším displejem, lepšími tlačítky a větší baterii. Na YouTube lze zhlédnout přednášku Picopad - open source herní konzole z LinuxDays 2023.
Byla vydána (𝕏) nová major verze 17 softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech GitLab (Wikipedie). Představení nových vlastností i s náhledy a videi v oficiálním oznámení.
Sovereign Tech Fund, tj. program financování otevřeného softwaru německým ministerstvem hospodářství a ochrany klimatu, podpoří vývoj FFmpeg částkou 157 580 eur. V listopadu loňského roku podpořil GNOME částkou 1 milion eur.
24. září 2024 budou zveřejněny zdrojové kódy přehrávače Winamp.
/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: