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

Требования:

  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. требований. Как я могу настроить его так, чтобы он не показывал папки? Или есть более простая команда?

2 ответа2

3
find $PWD -maxdepth 1 -type f

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

0

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .