В Bash как прочитать свойства файла?

#bash

#bash

Вопрос:

Я очень новичок в написании сценариев bash.

Мне нужно создать скрипт bash, который в конечном итоге копирует файлы из одного каталога в другой каталог.

Но целевой каталог для всех файлов не обязательно должен быть одинаковым для всех файлов в исходном каталоге. Если целевой каталог не существует, его необходимо создать. Имя нового каталога зависит от даты создания соответствующего файла. Формат имени каталога — ГГГГ_ММ_ДД.

Для этого я должен прочитать свойства файла, а затем проверить, существует ли целевой каталог. Если нет, то создайте каталог и скопируйте файл. Если он существует, скопируйте файл. Как я могу прочитать свойства файла? Как я могу создать новый каталог в формате ГГГГ_ММ_ДД? Как я могу проверить, существует ли каталог уже?

Чтобы узнать целевой каталог, скрипту необходимо прочитать свойства каждого файла в исходном каталоге с помощью цикла. Как я могу перебирать файлы в каталоге?

Я ясно выразился? Если нет, обратитесь ко мне за дополнительной информацией.

Спасибо.

Carlos Wiesemann

Комментарии:

1. Но в большинстве случаев время создания файла неизвестно. Чтобы узнать время создания, вы можете использовать stat (например, так: stat —формат «%W» <имя файла> )

2. На все ваши вопросы есть ответы, если вы их ищете. Вы пробовали что-нибудь сами или просто хотите, чтобы кто-нибудь написал сценарий для вас?

3. Как я уже сказал, я новичок в написании сценариев bash. Я хочу научиться этому. И, конечно, я хочу написать сценарий самостоятельно. Но иногда кому-то нужна / нужна помощь. И я верю, что этот сайт — самое подходящее место для таких вопросов. Мне очень жаль, если я обидел вас своими вопросами.

Ответ №1:

Для чтения файла с датой последнего изменения в каталоге с помощью цикла

 ls | stat --format "%n - %y" *
 

или, если вам не нравится команда ls, как предложил Сайрус, удалите ее 😉

 stat --format "%n - %y" *
 

Комментарии:

1. Я предлагаю удалить ls | .