OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.
Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.
R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.
IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.
Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.
Oznámeny byly nové Raspberry Pi Compute Module 4S. Vedle původní 1 GB varianty jsou nově k dispozici také varianty s 2 GB, 4 GB a 8 GB paměti. Compute Modules 4S mají na rozdíl od Compute Module 4 tvar a velikost Compute Module 3+ a předchozích. Lze tak provést snadný upgrade.
Po roce vývoje od vydání verze 1.24.0 byla vydána nová stabilní verze 1.26.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.26.
Byla vydána nová verze 6.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.14.
Byla vydána nová verze 30.0.0 frameworku pro vývoj multiplatformních desktopových aplikací pomocí JavaScriptu, HTML a CSS Electron (Wikipedie, GitHub). Chromium bylo aktualizováno na verzi 124.0.6367.49, V8 na verzi 12.4 a Node.js na verzi 20.11.1. Electron byl původně vyvíjen pro editor Atom pod názvem Atom Shell. Dnes je na Electronu postavena celá řada dalších aplikací.
Byla vydána nová verze 9.0.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 220 vývojářů. Provedeno bylo více než 2 700 commitů. Přehled úprav a nových vlastností v seznamu změn.
find
a exec cp
, ale nevím jak tam dostat ten nadřazený adresář.data/a/dokumentace data/b/dokumentace data/e/dokumentace data/k/dokumentacezkopírovat do cíle:
cíl/a/dokumentace cíl/b/dokumentace cíl/e/dokumentace cíl/k/dokumentaceMožná jsem hledal špatně, ale na podobný požadavek jsem dotaz nikde nezahlédl.Díky.
Řešení dotazu:
cd data
for dir in * ;
do
if [ -d $dir ] && [ -d ${dir}/dokumentace ]
then
# vlastni kopirovani dat
mkdir -p ../cil/${dir}/dokumentace
cp ${dir}/* ../cil/${dir}
cp ${dir}/dokumentace/* ../cil/${dir}/dokumentace
fi
done
cp ${dir}/dokumentace/* ../cil/${dir}/dokumentaceJestli jsou pod tim adresarem 'dokumentace' jeste dalsi podadresare, tak lze pochopitelne pouzit:
cp -r ${dir}/dokumentace ../cil/${dir}/dokumentace
find
a scriptik co to zavolá by to určitě šlo lehce.cd /cesta/k/data find . -maxdepth 2 -type d -regex ".*/dokumentace$" -exec mkdir -p "/cesta/k/cil/{}" \; find . -maxdepth 2 -type d -regex ".*/dokumentace$" -exec cp -r "{}" "/cesta/k/cil/{}" \;
cd /cesta/k/data find . -maxdepth 2 -type d -regex "\.\/.*/dokumentace$" -exec mkdir -p "/home/imega/cil/{}" \; find . -maxdepth 2 -type d -regex "\.\/.*/dokumentace$" -exec cp -r "{}/../" "/home/imega/cil/{}/../" \;Osobně bych to realizoval přes
find
, který by přes -exec
volal skript, kde by se akce realizovaly.
/home/imega
má být /cesta/k
– aspoň je vidět, že jsem si to i zkusil :)
mkdir testovaci_adresar/data
cd testovaci_adresar/data
mkdir -p a/dok; touch a/soub1 a/dok/soub2
touch b
mkdir c; touch c/soub3
mkdir -p d/dok ; touch d/soub4 d/dok/soub5
touch e
Tim jsem si vytvoril smes souboru a adresaru ruznych urovni a na nich si pak delam pokusy
A pointa?Nebudes davat do verejnych diskuzi jedno platne prihlasovaci jmeno na tvuj system. To je takova zakladni ochrana proti crackerum, kteri se chteji probourat na tvuj system.
$ find . -type d -name 'dokumentace' -printf '%h\n' |xargs -i cp -a {} cil
cp /data/a{./dokumentace} cil/a
, tak se nehneme z mista.
cp /data/a{./dokumentace} cil/aSakra, zase preklep Ma byt carka misto tecky ve slozenych zavorkach.
cp /data/a{,/dokumentace} cil/a
-r
"
mkdir -p ../cil/${dir}/dokumentace
jenom mkdir ../cil/$dir
Moc dík za pomocNeni zac.
3. kopiruje i jine podadresare nez jenon "dokumentace" (coz tazatel zrejme chtel)Ma byt samozrejme "NEchtel".
Zadání není jednoznačné, takže se lze jen domnívat co tazatel přesně chtěl.
kopiruje data/X/ do cil/ (tedy ne do cil/X)
Kopíruje data/X do cil, tj. v adresáři cíl bude podadresář X čili kopíruje data/X/ do cil/X, vyzkoušej si co dělá:
$ cp -a data/X cil
kopiruje i jine podadresare nez jenon "dokumentace"
Tak kopírujte jen podadresář dokumentace:
$ find . -type d -name 'dokumentace' |xargs -i rsync -aR {} cil
najde i jine adresare 'dokumentace' nez pouze v druhe urovni
Tak si specifikujte v jaké úrovni budete adresář dokumentace zpracovávat:
$ find . -mindepth 3 -maxdepth 3 -type d -name 'dokumentace' |xargs -i rsync -aR {} cil
Ještě nějaká nejasnost?
Kopíruje data/X do cil, tj. v adresáři cíl bude podadresář X čili kopíruje data/X/ do cil/X, vyzkoušej si co dělá:Ano, popletl jsem to. Pomotal jsem
cp -r data/x cila
cp -r data/x/* cil
Pochopil jsem to dobre?
~/zkouska$ find . ./bleble ./bleble/dokumentace ./bleble/dokumentace/zkouska ./blabla ./bloblo ./bloblo/bubu ./bloblo/dokumentace ./bloblo/dokumentace/zkouska ~/zkouska$ cp --parents */dokumentace/* ../zkouska1/ ~/zkouska$ find ../zkouska1/ ../zkouska1/ ../zkouska1/bleble ../zkouska1/bleble/dokumentace ../zkouska1/bleble/dokumentace/zkouska ../zkouska1/bloblo ../zkouska1/bloblo/dokumentace ../zkouska1/bloblo/dokumentace/zkouskaMarek
" ./zkouska/bleble se nezkopiruji do ../zkouska1/bleble."
A ma se kopirovat, nebo ne?
Toto
cp -r --parents */dokumentace/* ../zkouska1/
podle mne dela:
Pokud existuje adresar dokumentace ve druhe urovni, tak ho zkopiruji i s nadrizenym adresarem rekurzivne do ./zkouska1/
MarekA ma se kopirovat, nebo ne?Myslim, ze tazatel se vyjadril, ze ma. Zkousel jsi, co ten tvuj 'cp' kopiruje? Protoze ja to zkousel a nekopiruje tu prvni uroven. Vytvor si soubor v zkouska/bleble (napr. takhle:
touch ./zkouska/bleble/abc
), spust na to ten tvuj cp a podivej se, co mas v zkouska1/bleble. Soubor 'abc' to rozhodne nebude
To stejne plati pro soubory (i adresare) v ./zkouska/bleble/dokumentace/zkouska
DIR="./zkouska/bleble/dokumentace/zkouska"
touch ${DIR}/def
mkdir ${DIR}/podadr
touch ${DIR}/podadr/ghi
^^ Ani jeden z nich se nezkopiruje.
Co tedy delam spatne, ze si myslym, ze mne to funguje?
~/zkouska$ DIR="./bleble/dokumentace/zkouska" ~/zkouska$ mkdir ./bleble/dokumentace/zkouska ~/zkouska$ touch ${DIR}/def ~/zkouska$ mkdir ${DIR}/podadr ~/zkouska$ touch ${DIR}/podadr/ghi ~/zkouska$ find . ./bleble ./bleble/dokumentace ./bleble/dokumentace/zkouska ./bleble/dokumentace/zkouska/podadr ./bleble/dokumentace/zkouska/podadr/ghi ./bleble/dokumentace/zkouska/def ./blabla ./bloblo ./bloblo/bubu ./bloblo/dokumentace ./bloblo/dokumentace/dir ./bloblo/dokumentace/dir/file ./bloblo/dokumentace/zkouska ~/zkouska$ mkdir ../zkouska1 ~/zkouska$ cp -r --parents */dokumentace/* ../zkouska1/ ~/zkouska$ find ../zkouska1 ../zkouska1 ../zkouska1/bleble ../zkouska1/bleble/dokumentace ../zkouska1/bleble/dokumentace/zkouska ../zkouska1/bleble/dokumentace/zkouska/podadr ../zkouska1/bleble/dokumentace/zkouska/podadr/ghi ../zkouska1/bleble/dokumentace/zkouska/def ../zkouska1/bloblo ../zkouska1/bloblo/dokumentace ../zkouska1/bloblo/dokumentace/dir ../zkouska1/bloblo/dokumentace/dir/file ../zkouska1/bloblo/dokumentace/zkouskaMarek
Co tedy delam spatne, ze si myslim, ze mne to funguje?Zapomnel jsi si vytvorit ten soubor v ./bleble jak jsem psal (touch ./bleble/abc) Jinak se omlouvam, ze jsem nepostrehl to pridani prepinace "-r" do "cp". Tim se resi to kopirovani adresarove struktury pod 'dokumentace'.
Tiskni Sdílej: