Как составить список файлов в папке с помощью сценариев Bash

Я только начинаю работу со сценариями bash и пытаюсь написать простой сценарий, в котором я могу перечислить все файлы с определенным расширением, используя сценарий bash. Я в основном пишу на Python или Matlab, поэтому я очень привык устанавливать адрес папки и использовать функцию cd для изменения пути к этой папке и получения списка файлов в этой папке. Я пытался сделать это с Bash, и я не то, что я делаю неправильно. Например, я пытаюсь перечислить все подпапки в папке со следующим адресом "/home/user012/Desktop/folder2Start"

До сих пор я пытался

cd "/home/user012/Desktop/folder2Start"

, и это не так много, когда я запустить его из терминала.

Как бы я попал в него и перечислил его папки?

Любая помощь будет принята с благодарностью ..

1
задан 1 September 2018 в 13:27

3 ответа

Необходимо использовать что-то как:

ls -l -d /home/user012/Desktop/folder2Start/*/
  • */ ищет каталоги
  • -d, говорит, не печатают содержание тех каталогов.
1
ответ дан 1 September 2018 в 23:27

Это - типичный вариант использования для оболочки globbing (расширение пути):

/home/user012/Desktop/folder2Start/*/

Здесь я использовал */, который будет соответствовать любому файлу (*) под /home/user012/Desktop/folder2Start/, который является каталогом (запаздывание /).

, Если Вы хотите воздействовать на них позже, лучше поместите результат расширения в массиве (работы подобным образом к Python list, оба 0-индексируемы также):

directories=( /home/user012/Desktop/folder2Start/*/ )

затем можно сослаться на массив, и это - элементы с помощью обычных операторов управления массивом.

OTOH, если Вы хотите список, используют echo / printf / ls - безотносительно исков Вы лучшее:

printf '%s\n' /home/user012/Desktop/folder2Start/*/
echo /home/user012/Desktop/folder2Start/*/
ls -ld /home/user012/Desktop/folder2Start/*/

для любого имени каталога со встроенной новой строкой, наблюдением за концом / как имя конечный маркер.

1
ответ дан 1 September 2018 в 23:27

Можно перечислить это "folder2Start" файл путем издания:

ls -la /home/user012/Desktop/folder2Start

Возможно, я слишком опаздываю, но вопрос, все еще активный, я надеюсь, что это может быть полезно для Вас.

0
ответ дан 3 December 2019 в 06:53

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

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