формат команды статистики для добавления '/' к имени файла, если каталог, и удаляют “. /” от передней стороны

Со следующей командой я смог перечислить все каталоги относительно текущего каталога наряду со временем эпохи, в последний раз измененным:

find . -exec stat -c '%n: %Y' {} \;

вывод выглядит примерно так:

.: 1569247414
./a_file.txt: 1561624333
./some_folder: 1561624645
./some_folder/some_file.txt: 1561624645
./some_folder/another_file.txt: 1536557809

Как я пошел бы об избавлении от ". /" появляющийся в начале каждой записи, и добавляют '/', если это - каталог?

В качестве награды избавление от первой записи '.', которая является просто текущей папкой, было бы хорошо.

Удачи

1
задан 17 October 2019 в 12:27

1 ответ

  • Добавляют -mindepth 1 для избавлений от ., который является глубиной == 0
  • Альтернатива: используйте find * вместо find .
  • Отдельные файлы от папок с -type d ... -or -type f ...
  • Использование + вместо \; для отправки нескольких файлов в [1 110]; это может обработать его и будет намного быстрее!
<час>
find * \
-type d -exec stat -c '%n/: %Y' {} + \
-or -type f -exec stat -c '%n: %Y' {} +
<час>

, НО...

Вам не нужно -exec stat вообще!

  • Использование find bultin -printf с для печати даты последнего изменения (%Cs был бы эквивалент [1 115] %Y).
  • -printf '%P' вместо [1 118] также позволит Вам избавиться от [1 119] в начале каждого имени файла.
<час>
find . -mindepth 1 \
-type d -printf '%P/: %Cs\n' \
-or -type f -printf '%P: %Cs\n'
<час>

Вывод:

a_file.txt: 1561624333
some_folder/: 1561624645
some_folder/some_file.txt: 1561624645
some_folder/another_file.txt: 1536557809
0
ответ дан 7 December 2019 в 18:26

Другие вопросы по тегам:

Похожие вопросы: