MyDestiny |
|
Темы:
1
Сообщения:
13
Участник с: 08 августа 2016
|
Утро сообщество нужна коллективная помощь :)))) Есть такая необходимость, вытащить в отдельный csv информацию о папках, под папках и всех филах в них хранящихся, при условии, что в фаиле необходимо,что-бы о каждом файле была информация, имя, объём, путь к фаилу, а также время создания, модификации и использования. использую механизм «ls -aFGlRrh > ~/Desktop/files.csv но он не всё выводит, что мне не хватает? буду очень признателен за помощь! |
MyDestiny |
|
Темы:
1
Сообщения:
13
Участник с: 08 августа 2016
|
svicerСпасибо svicer что послали к гуглу, но всё таки я так и не нашёл правильный ответ, я использую аргумент ls может правельней задействовать использовать find или awk? |
kurych |
|
Темы:
0
Сообщения:
1395
Участник с: 06 ноября 2011
|
Попробуйте использовать find и stat Возможно, даже можно обойтись одним find, используя опцию -printf. |
vasek |
|
Темы:
47
Сообщения:
11926
Участник с: 17 февраля 2013
|
Наверное, можно обойтись одним stat ….. но для начала нужно получить список всех файлов в требуемой директории $ find /path -type f > listing это без учета самих наименований директорий (файлы в них учитываются), но если они тоже нужны, то тогда так $ du -a ~/path | awk '{ print $2 }') а затем читая построчно этот listing применять к указанным там файлам команду stat со следующими опциями а чтобы легче было инерпретировать вывод и записать его сразу в виде типа .csv, удобнее разбить эту команду на несколько команд, типа такого …. (вывод оформлен без учета минут и секунд)$ echo "`stat -c%n ~/file`;`stat -c%s ~/file`;`stat -c%x ~/file | awk '{ print $1 }'`;`stat -c%y ~/file | awk '{ print $1 }'`;`stat -c%z ~/file | awk '{ print $1 }'`" .... примерный вывод ..... name_file;500;2016-08-08;2016-05-05;2016-07-19 …. ну и нужна несложная прога — построчное чтение listing + выполнение приведенной выше команды + построчная запись в выходной файл ….. Итог - файл типа .csv
Ошибки не исчезают с опытом - они просто умнеют
|
vasek |
|
Темы:
47
Сообщения:
11926
Участник с: 17 февраля 2013
|
Предвижу вопрос по выводу в файл .csv ...... где то так (проверено .... но не должно быть пробелов в имени файла) UPD .... $ find /path -type f > /path_file_listing ...... или $ du -a ~/path | awk '{ print $2 }') > /path_file_listing ...... в зависимости от требований
Ошибки не исчезают с опытом - они просто умнеют
|
svicer |
|
![]()
Темы:
11
Сообщения:
856
Участник с: 27 июля 2014
|
vasekУ вас Какие-тоСложныеКонструкции надо чтобы было так : ls > cvs: все просто, денег не прошу... |
MyDestiny |
|
Темы:
1
Сообщения:
13
Участник с: 08 августа 2016
|
Ребят спасибо заранее, проверю отпишу! svicerкак я понимаю ls не может отобразить все необходимые мне даты, исключительно дату создания! |
MyDestiny |
|
Темы:
1
Сообщения:
13
Участник с: 08 августа 2016
|
vasekЧто-то я немного запутался! И так к примеру для начала как я понял мне необходимо зделать следующую команду "du -a /Volumes/Storage/BBBETCD/etc | awk '{print $2}' > ~/Desktop/files.csv" Потом как быть? куда засовывать "echo "`stat -c%n ~/file`;`stat -c%s ~/file`;`stat -c%x ~/file | awk '{ print $1 }'`;`stat -c%y ~/file | awk '{ print $1 }'`;`stat -c%z ~/file | awk '{ print $1 }'`"" продолжать это жу команду? |
vasek |
|
Темы:
47
Сообщения:
11926
Участник с: 17 февраля 2013
|
MyDestiny, учи матчасть...... тебе дали черновой вариант скрипта, вот его и запускай ....... рекомендую доработать скрипт для себя - можно в него включить и подготовку файла-listing + обязательно обработку ошибок и др. ...... а не хочешь учить матчасть, не берись. А то получается как в сказке - тетенька дай водички попить, а то так кушать хочется, что переночевать негде .....
Ошибки не исчезают с опытом - они просто умнеют
|