Вот то, чего я пытаюсь достичь.
У меня есть каталог с более чем 4200 подфайлами / подкаталогами, каждый из которых должен быть установлен на определенную метку времени.
Это проблема, потому что у многих из них есть пробелы и другие странные символы.
Первое, что я попробовал:
touch $(find .)
Не будет работать из-за пробелов.Он обновит метки времени для всех файлов и каталогов, которые свободны от места, но те, которые не имеют, не получат новую метку времени.Кроме того, как и следовало ожидать, он создает файлы в корневом каталоге, соответствующие элементам имен файлов с пробелами.Поэтому, если у меня есть файл с именем «One Two Three», «touch» создает 3 файла: «One», «Two» и «Three» в корневом каталоге.Само по себе это можно исправить, используя -c с «touch», но, конечно, он все равно не обновит файл с пробелом.
Второе, что я попробовал, было:
for FILENAME in $(find .); do touch -t 201007162310.00 "$FILENAME"; done
Но это та же история.
Я нашел пару результатов в Интернете, но все они пытаются достичь чего-то по-другому и поэтому предлагают способы, которые не будут работать для меня.
Так что теперь я потерян.Любые идеи?
Неужели нельзя заставить команду 'find' добавлять и добавлять каждую строку в кавычках или что-то в этом роде?
EDIT: Это необходимо сделать с помощью сценария оболочки.Использование Perl, PHP или любой другой среды не поможет.Я мог бы легко сделать это с помощью чего угодно, кроме сценариев оболочки Unix, но это должен быть сценарий оболочки Unix, желательно не большой.