У мене є список файлів, які я хочу перевірити, чи вони існують у моїй файловій системі. Я думав це зробити за допомогою find
:
for f in $(cat file_list); do
find . -name $f > /dev/null || print $f
done
(за допомогою zsh
), але це не працює, як find
здається, виходить, 0
знайде файл чи ні. Я припускаю , що я міг би передати його через який - то інший тест , який перевіряє , щоб побачити , якщо find
виробляє який - або вихід (нафта , але ефективним було б замінити > /dev/null
з |grep ''
) , але це відчуває , як з допомогою троля зловити козу (інші національності могли б сказати що - то про кувалди і волоські горіхи ).
Чи є спосіб примусити find
мене дати корисне значення для виходу? Або хоча б отримати список тих файлів, яких не було знайдено? (Я можу собі уявити, що останній може бути легшим за допомогою хитрого вибору логічних сполучників, але я, здається, завжди зав'язуюся у вузли, коли намагаюся розібратися в цьому.)
Передісторія / мотивація: у мене є "головна" резервна копія, і я хочу перевірити, чи існують деякі файли на моїй локальній машині на моїй головній резервній копії, перш ніж видаляти їх (щоб створити трохи місця). Тож я склав список файлів, ssh
відправив їх на головну машину, і тоді був збитком, щоб з'ясувати найкращий спосіб знайти відсутні файли.
locate
не відображає поточний стан файлової системи, це може бути день або навіть тиждень. Це підходить як основа для тестування резервних копій.
locate
.