Я нуб в shell-программировании, но понадобилось скромненький скриптик написать, который перебирает файлы в директории и выполняет с каждым определенные действия. Затык с командой ls
Подскажите, она может выводить список файлов с полным путем? Например, я пишу:
ls -1 /media/mmc/folder
она соответственно выводит
file1
file2
...
filen
А заставить ее сделать так
/media/mmc/folder/file1
/media/mmc/folder/file2
...
/media/mmc/folder/filen
возможно? Или есть какой-то другой путь, через конкатенацию строк, например?
Неактивен
Вах, премного благодарен. Буду дальше копать ![]()
Неактивен
gLobster говорит:
for i in `ls /media/mmc/folder`; do echo "/media/mmc/folder$i"; done;
for i in /media/mmc/folder/*; do echo "$i"; done
тогда уж
Неактивен
В принципе, работают оба варианта
Спасибо за ликбез. Скриптик для dcraw написал.
Неактивен
В предложенном способе есть недостаток, не будет перебирать файлы, начинающиеся с точки. Можно починить следующим образом:
for i in /media/mmc/folder/* /media/mmc/folder/.*; do echo "$i"; done
Но тут тоже есть маленький недостаток, оно . и .. тоже перебирает. Все это, разумеется, решабельно еще одной строкой кода.
Отредактированно GET (11-04-2008 03:26:29)
Неактивен
GET, из пушки по воробьям? Вроде речь про картинки из фотоаппарата...
Неактивен
GET говорит:
В предложенном способе есть недостаток, не будет перебирать файлы, начинающиеся с точки. Можно починить следующим образом:
Код:
for i in /media/mmc/folder/* /media/mmc/folder/.*; do echo "$i"; doneНо тут тоже есть маленький недостаток, оно . и .. тоже перебирает. Все это, разумеется, решабельно еще одной строкой кода.
Разумеется, я догадался
Поэтому написал /media/mmc/folder/*.NEF ![]()
Неактивен