Я только начинаю работу со сценариями bash и пытаюсь написать простой сценарий, в котором я могу перечислить все файлы с определенным расширением, используя сценарий bash. Я в основном пишу на Python или Matlab, поэтому я очень привык устанавливать адрес папки и использовать функцию cd для изменения пути к этой папке и получения списка файлов в этой папке. Я пытался сделать это с Bash, и я не то, что я делаю неправильно. Например, я пытаюсь перечислить все подпапки в папке со следующим адресом "/home/user012/Desktop/folder2Start"
До сих пор я пытался
cd "/home/user012/Desktop/folder2Start"
, и это не так много, когда я запустить его из терминала.
Как бы я попал в него и перечислил его папки?
Любая помощь будет принята с благодарностью ..
Необходимо использовать что-то как:
ls -l -d /home/user012/Desktop/folder2Start/*/
*/
ищет каталоги -d
, говорит, не печатают содержание тех каталогов. Это - типичный вариант использования для оболочки 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/*/
для любого имени каталога со встроенной новой строкой, наблюдением за концом /
как имя конечный маркер.
Можно перечислить это "folder2Start" файл путем издания:
ls -la /home/user012/Desktop/folder2Start
Возможно, я слишком опаздываю, но вопрос, все еще активный, я надеюсь, что это может быть полезно для Вас.