Якщо ви витягли файли в директорії , в якій ви не змінені або переміщати будь-які файли в протягом декількох хвилин до вилучення, ви можете сказати , розпаковані файли їх зовсім недавно CTime . Це не ідеально (якщо каталог містить витягнутий файл, ви не можете сказати, чи був він створений розпакуванням або він існував раніше (можливо, він був порожнім)), але працює досить добре на практиці.
Наступна команда GNU find переміщує файли та каталоги в поточний каталог, ctime якого менше 2 хвилин тому до /other/dir
. ls -lctr
може допомогти знайти відповідний час відсічення.
find . -mindepth 1 -maxdepth 1 -cmin -2 -exec mv {} /other/dir \;
Zsh еквівалент:
mv *(cm-3) /other/directory
Наступна команда GNU find переміщує файли з аналогічним недавнім ctime у дереві каталогів, корінням у поточному каталозі, на аналогічний шлях під /other/dir
.
find . -mindepth 1 -cmin -2 -type f -exec sh -c '
for x; do
mkdir -p "$0/${x%/*}"
mv "$x" "$0/$x"
done
' /other/dir {} +
Zsh еквівалент (майже: цей відтворює всю ієрархію каталогів, а не лише каталоги, які містять файли):
autoload zmv
mkdir -p ./**/*(/cm-3:s"|.|/other/dir|")
zmv -Q '(**/)(*)(.cm-3)' /other/dir/'$1$2'