Bash: список файлов с абсолютными путями, по одному на строку, никакой другой информации

668
Johannes

Я ищу команду, которая перечисляет все файлы в текущем каталоге.

Требования:

  1. Абсолютные пути
  2. Один файл в строке
  3. Нет другой информации (например, размер, разрешения ...)
  4. Не показывать папки

Что я получил так далеко, это:

ls -d1 $PWD/* 

Который дает:

[User@User-arch Pictures]$ ls -d1 $PWD/* /home/User/Pictures/folder1 /home/User/Pictures/folder2 /home/User/Pictures/file1.png /home/User/Pictures/file2.png /home/User/Pictures/file3.png /home/User/Pictures/file4.png 

или readlink -f $PWD/*, который дает тот же результат.

Они удовлетворяют всем, кроме 4. требований. Как я могу настроить его так, чтобы он не показывал папки? Или есть более простая команда?

0

2 ответа на вопрос

3
sebasth
find $PWD -maxdepth 1 -type f 

Перечисляет файлы в текущем рабочем каталоге. -type fсообщает findсписок только обычных файлов (без папок), -maxdepth 1предотвращает отображение содержимого в подпапках при выводе.

0
JG7

Вы можете указать lsвключить конечную косую черту после имен каталогов, а затем передать ее по конвейеру grep.

ls -pd1 $PWD/* | grep -v /$ 

Изменить: увидел мой недостаток в оригинальном ответе.

Это ничего не показывает для меня Johannes 6 лет назад 0

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