Для моей задачи мне нужно перечислить все файлы в дереве (каталог, все его поддиры, все поддиры этих и т. д.).
Я бы предпочел увидеть их в Nautilus или Krusader, но интереснее решение командной строки (в этом случае мне понадобятся имена файлов, размеры и время модификации, которые будут перечислены).
вы можете поместить их в свой .bashrc файл
function _get_tree () {ls -alR | при чтении LINE; сделать эхо $ LINE | grep ": $" & gt; / DEV / нуль; если [$? -eq 0]; то VAR = $ (echo $ LINE | grep ": $" | sed -e 's /: $ //' -e 's / [^ -] [^ \ /] * \ // - / g' - e 's / ^ / /' -e 's / - / | /' | tee / dev / tty); Fi; echo $ LINE | grep "^ -" & gt; / DEV / нуль; если [$? -eq 0]; затем size = $ {# VAR}; для i в $ (eval echo "{1 .. $ size}"); do echo -n ''; сделанный; echo -n '..'; echo $ LINE | cut -d '' -f9; Fi; сделанный; }; alias get_tree = '_ get_tree'
Теперь вы можете использовать команду get_tree в любом каталоге и отображать всю иерархию.
Синтаксис:
$ get_tree
Результат выборки:
. ..test.sh | -2 ..123.log | --- 3 | ----- 4 | -5 | --- 6
Надеюсь, это помогает!
find / path / -printf "% TY-% Tm-% Td \ t% s \ t% p \n"
Вы можете играть с форматированием printf сколько угодно. Это дает вам отличную возможность получить отформатированные данные так, как вам нужно, что неоценимо, если вы используете вывод в другом приложении.
Подробнее: http: //linux.about. com / od / commands / l / blcmdl1_find.htm
Для лучшей читаемости вы можете передать все это через команду column
, и она автоматически изменит размеры, чтобы они line.
find / path / -printf "% TY-% Tm-% Td \ t% s \ t% p \n" | column -t
Использование Krusader:
Это позволит вам обрабатывать всю партию, перетаскивая ее на другую панель и т. д. [ ! d6]
Как насчет сценария Nautilus?
#! / bin / bash # # АВТОР: (c) 2013 Glutanimate (https://askubuntu.com/users/81372) # NAME: DirTree 0.1 # DEPENDENCIES: дерево zenity (установить с sudo apt-get установить zenity tree) # ЛИЦЕНЗИЯ: GNU GPL v3 (http://www.gnu.org/licenses/gpl.html) # # ОПИСАНИЕ: Создает дерево каталогов на текущее местоположение. Если вы хотите, чтобы вы # могли фильтровать вывод по шаблону (например, * .avi, чтобы включать только файлы avi #). TITLE = DirTree # Получить рабочий каталог WORKINGDIR = "` python -c 'import gio, sys; print (gio.File (sys.argv [1]). Get_path ())' $ NAUTILUS_SCRIPT_CURRENT_URI` "# Время и дата TIME = $ (дата + "% Y-% m-% d_% H% M% S") # Фильтр zenity -question --title "$ TITLE" --text "Вы хотите фильтровать по определенному шаблону файла?" если ["$?" = "1"] then customtree = "tree" else PATTERN = $ (zenity -entry --title "$ TITLE" --text = "Введите шаблон файла (например, * .avi)"), если [-z " $ PATTERN "], затем выйдите из else customtree =" tree -P $ PATTERN "fi fi # Дерево каталогов $ customtree" $ WORKINGDIR "& gt; "$ WORKINGDIR / directorytree_ $ TIME.txt"
Инструкции по установке: Как установить скрипт Nautilus?
Я создал специально для этого программу - Снимок каталога . Он рекурсивно выполняет итерацию через каталог и сохраняет имена и размеры всех файлов и папок, с которыми он сталкивается в аккуратно структурированных HTML-файлах, которые имеют организацию, аналогичную организации входного каталога. Другими словами, это можно рассматривать как гиперссылку команд dir / s или tree / f .
ls
- стандартная команда для перечисления файлов в Ubuntu и других операционных системах Linux и Unix. ls
особенно полезен, потому что вы найдете его в каждой системе Unix, которую вы когда-либо встречали. По умолчанию при запуске отображаются только файлы в текущем каталоге.
Однако флаг -R
'является рекурсивным вариантом (обратите внимание на капитал R , а не r ), который также покажет вам все подкаталоги.
Вы также запросили «детали» - для этого вам нужен флаг -l
(это нижний регистр L, а не номер один). Помните, что это дает вам информацию о правах доступа к файлам, а также размер файла, информацию о времени / дате и имя файла.
Если вы хотите также показывать скрытые файлы / папки (эквивалент Ctrl + H в Nautilus), тогда добавьте флаг -a
all.
Вы можете объединить флаги вместе, чтобы дать вам что-то вроде:
ls -lR
Если вы запустите это в любой папке с приличным размером, вы обнаружите, что это дает огромный длинный вывод, который быстро прокручивается по экрану. Чтобы обойти это, вы можете «вывести» вывод ls
через программу с именем less
(имя пародия на аналогичную больше
который был вокруг первого, но имеет больше возможностей).
ls -lR | less
Это позволит вам использовать клавиши со стрелками вверх / вниз вместе с параметром PageUp / Down, чтобы перейти через выход с более удобной скоростью.
Я создал специально для этого программу - Снимок каталога . Он рекурсивно выполняет итерацию через каталог и сохраняет имена и размеры всех файлов и папок, с которыми он сталкивается в аккуратно структурированных HTML-файлах, которые имеют организацию, аналогичную организации входного каталога. Другими словами, это можно рассматривать как гиперссылку команд dir / s или tree / f .
Как насчет сценария Nautilus?
#! / bin / bash # # АВТОР: (c) 2013 Glutanimate (https://askubuntu.com/users/81372) # NAME: DirTree 0.1 # DEPENDENCIES: дерево zenity (установить с sudo apt-get установить zenity tree) # ЛИЦЕНЗИЯ: GNU GPL v3 (http://www.gnu.org/licenses/gpl.html) # # ОПИСАНИЕ: Создает дерево каталогов на текущее местоположение. Если вы хотите, чтобы вы # могли фильтровать вывод по шаблону (например, * .avi, чтобы включать только файлы avi #). TITLE = DirTree # Получить рабочий каталог WORKINGDIR = "` python -c 'import gio, sys; print (gio.File (sys.argv [1]). Get_path ())' $ NAUTILUS_SCRIPT_CURRENT_URI` "# Время и дата TIME = $ (дата + "% Y-% m-% d_% H% M% S") # Фильтр zenity -question --title "$ TITLE" --text "Вы хотите фильтровать по определенному шаблону файла?" если ["$?" = "1"] then customtree = "tree" else PATTERN = $ (zenity -entry --title "$ TITLE" --text = "Введите шаблон файла (например, * .avi)"), если [-z " $ PATTERN "], затем выйдите из else customtree =" tree -P $ PATTERN "fi fi # Дерево каталогов $ customtree" $ WORKINGDIR "& gt; "$ WORKINGDIR / directorytree_ $ TIME.txt"
Инструкции по установке: Как установить скрипт Nautilus?
Использование Krusader:
Это позволит вам обрабатывать всю партию, перетаскивая ее на другую панель и т. д. [ ! d6]
find / path / -printf "% TY-% Tm-% Td \ t% s \ t% p \n"
Вы можете играть с форматированием printf сколько угодно. Это дает вам отличную возможность получить отформатированные данные так, как вам нужно, что неоценимо, если вы используете вывод в другом приложении.
Подробнее: http: //linux.about. com / od / commands / l / blcmdl1_find.htm
Для лучшей читаемости вы можете передать все это через команду column
, и она автоматически изменит размеры, чтобы они line.
find / path / -printf "% TY-% Tm-% Td \ t% s \ t% p \n" | column -t
вы можете поместить их в свой .bashrc файл
function _get_tree () {ls -alR | при чтении LINE; сделать эхо $ LINE | grep ": $" & gt; / DEV / нуль; если [$? -eq 0]; то VAR = $ (echo $ LINE | grep ": $" | sed -e 's /: $ //' -e 's / [^ -] [^ \ /] * \ // - / g' - e 's / ^ / /' -e 's / - / | /' | tee / dev / tty); Fi; echo $ LINE | grep "^ -" & gt; / DEV / нуль; если [$? -eq 0]; затем size = $ {# VAR}; для i в $ (eval echo "{1 .. $ size}"); do echo -n ''; сделанный; echo -n '..'; echo $ LINE | cut -d '' -f9; Fi; сделанный; }; alias get_tree = '_ get_tree'
Теперь вы можете использовать команду get_tree в любом каталоге и отображать всю иерархию.
Синтаксис:
$ get_tree
Результат выборки:
. ..test.sh | -2 ..123.log | --- 3 | ----- 4 | -5 | --- 6
Надеюсь, это помогает!
tree будет очень удобно для вас.
sudo apt-get установить дерево
используя дерево filepath
, чтобы просмотреть файлы.
Как ответил Оли, find
позволит вам искать полное дерево каталогов:
find / path / -printf "% TY-% Tm-% Td \ t% s \ t% p \n "# Где% TY покажет мод. в качестве 4 цифр #% Tm будет отображаться мода. месяц в виде 2 цифр #% Td отобразит мод. 2 дня #% s отображает размер файла в байтах #% p отображает полный путь к файлу
Вы также можете использовать -тип f [ ! d2], чтобы ограничить результаты только файлами. Если вы хотите сопоставить шаблон файла, вам нужны опции
-name
или -iname
(соответственно с учетом регистра и нечувствительность к регистру). Прочитайте man-страницу find
- существует значительное количество опций, которые вы можете использовать для сужения / уточнения вашего поиска.
И как раз в сторону, если вы ожидают, что у вас будет отброшено несколько экранов данных, не забудьте передать ваши результаты через less
.
@Oli: +1 Я только что узнал что-то новое - [ колонок
. Раньше не использовал это.
Это также работает в Nemo.
ls
- стандартная команда для перечисления файлов в Ubuntu и других операционных системах Linux и Unix. ls
особенно полезен, потому что вы найдете его в каждой системе Unix, которую вы когда-либо встречали. По умолчанию при запуске отображаются только файлы в текущем каталоге.
Однако флаг -R
'является рекурсивным вариантом (обратите внимание на капитал R , а не r ), который также покажет вам все подкаталоги.
Вы также запросили «детали» - для этого вам нужен флаг -l
(это нижний регистр L, а не номер один). Помните, что это дает вам информацию о правах доступа к файлам, а также размер файла, информацию о времени / дате и имя файла.
Если вы хотите также показывать скрытые файлы / папки (эквивалент Ctrl + H в Nautilus), тогда добавьте флаг -a
all.
Вы можете объединить флаги вместе, чтобы дать вам что-то вроде:
ls -lR
Если вы запустите это в любой папке с приличным размером, вы обнаружите, что это дает огромный длинный вывод, который быстро прокручивается по экрану. Чтобы обойти это, вы можете «вывести» вывод ls
через программу с именем less
(имя пародия на аналогичную больше
который был вокруг первого, но имеет больше возможностей).
ls -lR | less
Это позволит вам использовать клавиши со стрелками вверх / вниз вместе с параметром PageUp / Down, чтобы перейти через выход с более удобной скоростью.
Как насчет сценария Nautilus?
#! / bin / bash # # АВТОР: (c) 2013 Glutanimate (https://askubuntu.com/users/81372) # NAME: DirTree 0.1 # DEPENDENCIES: дерево zenity (установить с sudo apt-get установить zenity tree) # ЛИЦЕНЗИЯ: GNU GPL v3 (http://www.gnu.org/licenses/gpl.html) # # ОПИСАНИЕ: Создает дерево каталогов на текущее местоположение. Если вы хотите, чтобы вы # могли фильтровать вывод по шаблону (например, * .avi, чтобы включать только файлы avi #). TITLE = DirTree # Получить рабочий каталог WORKINGDIR = "` python -c 'import gio, sys; print (gio.File (sys.argv [1]). Get_path ())' $ NAUTILUS_SCRIPT_CURRENT_URI` "# Время и дата TIME = $ (дата + "% Y-% m-% d_% H% M% S") # Фильтр zenity -question --title "$ TITLE" --text "Вы хотите фильтровать по определенному шаблону файла?" если ["$?" = "1"] then customtree = "tree" else PATTERN = $ (zenity -entry --title "$ TITLE" --text = "Введите шаблон файла (например, * .avi)"), если [-z " $ PATTERN "], затем выйдите из else customtree =" tree -P $ PATTERN "fi fi # Дерево каталогов $ customtree" $ WORKINGDIR "& gt; "$ WORKINGDIR / directorytree_ $ TIME.txt"
Инструкции по установке: Как установить скрипт Nautilus?
Использование Krusader:
Это позволит вам обрабатывать всю партию, перетаскивая ее на другую панель и т. д. [ ! d6]
find / path / -printf "% TY-% Tm-% Td \ t% s \ t% p \n"
Вы можете играть с форматированием printf сколько угодно. Это дает вам отличную возможность получить отформатированные данные так, как вам нужно, что неоценимо, если вы используете вывод в другом приложении.
Подробнее: http: //linux.about. com / od / commands / l / blcmdl1_find.htm
Для лучшей читаемости вы можете передать все это через команду column
, и она автоматически изменит размеры, чтобы они line.
find / path / -printf "% TY-% Tm-% Td \ t% s \ t% p \n" | column -t
вы можете поместить их в свой .bashrc файл
function _get_tree () {ls -alR | при чтении LINE; сделать эхо $ LINE | grep ": $" & gt; / DEV / нуль; если [$? -eq 0]; то VAR = $ (echo $ LINE | grep ": $" | sed -e 's /: $ //' -e 's / [^ -] [^ \ /] * \ // - / g' - e 's / ^ / /' -e 's / - / | /' | tee / dev / tty); Fi; echo $ LINE | grep "^ -" & gt; / DEV / нуль; если [$? -eq 0]; затем size = $ {# VAR}; для i в $ (eval echo "{1 .. $ size}"); do echo -n ''; сделанный; echo -n '..'; echo $ LINE | cut -d '' -f9; Fi; сделанный; }; alias get_tree = '_ get_tree'
Теперь вы можете использовать команду get_tree в любом каталоге и отображать всю иерархию.
Синтаксис:
$ get_tree
Результат выборки:
. ..test.sh | -2 ..123.log | --- 3 | ----- 4 | -5 | --- 6
Надеюсь, это помогает!
tree будет очень удобно для вас.
sudo apt-get установить дерево
используя дерево filepath
, чтобы просмотреть файлы.
Как ответил Оли, find
позволит вам искать полное дерево каталогов:
find / path / -printf "% TY-% Tm-% Td \ t% s \ t% p \n "# Где% TY покажет мод. в качестве 4 цифр #% Tm будет отображаться мода. месяц в виде 2 цифр #% Td отобразит мод. 2 дня #% s отображает размер файла в байтах #% p отображает полный путь к файлу
Вы также можете использовать -тип f [ ! d2], чтобы ограничить результаты только файлами. Если вы хотите сопоставить шаблон файла, вам нужны опции
-name
или -iname
(соответственно с учетом регистра и нечувствительность к регистру). Прочитайте man-страницу find
- существует значительное количество опций, которые вы можете использовать для сужения / уточнения вашего поиска.
И как раз в сторону, если вы ожидают, что у вас будет отброшено несколько экранов данных, не забудьте передать ваши результаты через less
.
@Oli: +1 Я только что узнал что-то новое - [ колонок
. Раньше не использовал это.
Это также работает в Nemo.
ls
- стандартная команда для перечисления файлов в Ubuntu и других операционных системах Linux и Unix. ls
особенно полезен, потому что вы найдете его в каждой системе Unix, которую вы когда-либо встречали. По умолчанию при запуске отображаются только файлы в текущем каталоге.
Однако флаг -R
'является рекурсивным вариантом (обратите внимание на капитал R , а не r ), который также покажет вам все подкаталоги.
Вы также запросили «детали» - для этого вам нужен флаг -l
(это нижний регистр L, а не номер один). Помните, что это дает вам информацию о правах доступа к файлам, а также размер файла, информацию о времени / дате и имя файла.
Если вы хотите также показывать скрытые файлы / папки (эквивалент Ctrl + H в Nautilus), тогда добавьте флаг -a
all.
Вы можете объединить флаги вместе, чтобы дать вам что-то вроде:
ls -lR
Если вы запустите это в любой папке с приличным размером, вы обнаружите, что это дает огромный длинный вывод, который быстро прокручивается по экрану. Чтобы обойти это, вы можете «вывести» вывод ls
через программу с именем less
(имя пародия на аналогичную больше
который был вокруг первого, но имеет больше возможностей).
ls -lR | less
Это позволит вам использовать клавиши со стрелками вверх / вниз вместе с параметром PageUp / Down, чтобы перейти через выход с более удобной скоростью.
Я создал специально для этого программу - Снимок каталога . Он рекурсивно выполняет итерацию через каталог и сохраняет имена и размеры всех файлов и папок, с которыми он сталкивается в аккуратно структурированных HTML-файлах, которые имеют организацию, аналогичную организации входного каталога. Другими словами, это можно рассматривать как гиперссылку команд dir / s или tree / f .
Использование Krusader:
Это позволит вам обрабатывать всю партию, перетаскивая ее на другую панель и т. д. [ ! d6]
find / path / -printf "% TY-% Tm-% Td \ t% s \ t% p \n"
Вы можете играть с форматированием printf сколько угодно. Это дает вам отличную возможность получить отформатированные данные так, как вам нужно, что неоценимо, если вы используете вывод в другом приложении.
Подробнее: http: //linux.about. com / od / commands / l / blcmdl1_find.htm
Для лучшей читаемости вы можете передать все это через команду column
, и она автоматически изменит размеры, чтобы они line.
find / path / -printf "% TY-% Tm-% Td \ t% s \ t% p \n" | column -t
вы можете поместить их в свой .bashrc файл
function _get_tree () {ls -alR | при чтении LINE; сделать эхо $ LINE | grep ": $" & gt; / DEV / нуль; если [$? -eq 0]; то VAR = $ (echo $ LINE | grep ": $" | sed -e 's /: $ //' -e 's / [^ -] [^ \ /] * \ // - / g' - e 's / ^ / /' -e 's / - / | /' | tee / dev / tty); Fi; echo $ LINE | grep "^ -" & gt; / DEV / нуль; если [$? -eq 0]; затем size = $ {# VAR}; для i в $ (eval echo "{1 .. $ size}"); do echo -n ''; сделанный; echo -n '..'; echo $ LINE | cut -d '' -f9; Fi; сделанный; }; alias get_tree = '_ get_tree'
Теперь вы можете использовать команду get_tree в любом каталоге и отображать всю иерархию.
Синтаксис:
$ get_tree
Результат выборки:
. ..test.sh | -2 ..123.log | --- 3 | ----- 4 | -5 | --- 6
Надеюсь, это помогает!
tree будет очень удобно для вас.
sudo apt-get установить дерево
используя дерево filepath
, чтобы просмотреть файлы.
Как ответил Оли, find
позволит вам искать полное дерево каталогов:
find / path / -printf "% TY-% Tm-% Td \ t% s \ t% p \n "# Где% TY покажет мод. в качестве 4 цифр #% Tm будет отображаться мода. месяц в виде 2 цифр #% Td отобразит мод. 2 дня #% s отображает размер файла в байтах #% p отображает полный путь к файлу
Вы также можете использовать -тип f [ ! d2], чтобы ограничить результаты только файлами. Если вы хотите сопоставить шаблон файла, вам нужны опции
-name
или -iname
(соответственно с учетом регистра и нечувствительность к регистру). Прочитайте man-страницу find
- существует значительное количество опций, которые вы можете использовать для сужения / уточнения вашего поиска.
И как раз в сторону, если вы ожидают, что у вас будет отброшено несколько экранов данных, не забудьте передать ваши результаты через less
.
@Oli: +1 Я только что узнал что-то новое - [ колонок
. Раньше не использовал это.
Это также работает в Nemo.