Как получить список файлов в каталоге в сценарии оболочки?

Я пытаюсь получить содержание каталога с помощью сценария оболочки.

Мой сценарий:

for entry in `ls $search_dir`; do
    echo $entry
done

где $search_dir относительный путь. Однако $search_dir содержит много файлов с пробелами на их имена. В этом случае этот сценарий не работает как ожидалось.

Я знаю, что мог использовать for entry in *, но это только работало бы на мой текущий каталог.

Я знаю, что могу измениться на тот каталог, использовать for entry in * затем возвратитесь, но моя конкретная ситуация препятствует тому, чтобы я делал это.

У меня есть два относительных пути $search_dir и $work_dir, и я должен работать над обоими одновременно, читая их создающий/удаляющий файлы в них и т.д.

Таким образом, что я делаю теперь?

PS: Я использую удар.

133
задан David Gelhar 13 March 2010 в 06:18
поделиться

2 ответа

for entry in "$search_dir"/*
do
  echo "$entry"
done
232
ответ дан 24 November 2019 в 00:00
поделиться
for entry in "$search_dir"/* "$work_dir"/*
do
  if [ -f "$entry" ];then
    echo "$entry"
  fi
done
17
ответ дан 24 November 2019 в 00:00
поделиться
Другие вопросы по тегам:

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