Portál AbcLinuxu, 12. května 2025 08:17
Mam hromadu souboru a potrebuju jim nasavit cas pristupu stejny, jako maji cas zmeny. Porad na to nemuzu najit zadny program.
touch -a -d "$(stat -c %y SOUBOR)" SOUBOR
Diky, funguje to!
Jenom by mne zajimalo, co presne znamena $(stat -c %y SOUBOR) ? Proc nemuzu pouzit treba `stat -c %y SOUBOR` ?
$ echo `stat -c %y SOUBOR` 2009-06-26 00:30:06.000000000 +0200
$ echo "$(stat -c %y SOUBOR)"
2009-06-26 00:30:06.000000000 +0200
$ touch -a -d "$(stat -c %y SOUBOR)" SOUBOR
OK
$ touch -a -d "`stat -c %y h.txt`" h.txt OK
$ touch -a -d `stat -c %y SOUBOR` SOUBOR
VRATI CHYBU
Cim presne se to lisi?
a b c d - "a" "b" "c" "d" a b "c d" - "a" "b" "c d"
``
i u $()
Určitý rozdíl související s ovozovkami mezi ``
a $()
je v escapování:
bash$ echo "$(echo "\"a")" "a bash$ echo "`echo "\"a"`" bash: command substitution: line 1: unexpected EOF while looking for matching `"' bash: command substitution: line 2: syntax error: unexpected end of file bash$ echo "`echo "\\"a"`" "aV bash mi připadá lepší používat
$()
.
Nemohl byste mi poradit, jak to upravit, aby to proslo cely adresar a udelalo to u vsech souboru? Nechce se mi to delat po jednom.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.