Как получить только имена файлов из списка ls -la (ll)?

Вопрос или проблема

Мне нужен длинный (вертикальный) список всех имен файлов всех файлов в директории.

Как получить только имена файлов из списка ls -la (ll)?

Только имена, не:

drwxr-xr-x 9 USER GROUP  4096 Jul 20 10:30 filename1
drwxr-xr-x 9 USER GROUP  4096 Jul 20 10:30 filename2
drwxr-xr-x 9 USER GROUP  4096 Jul 20 10:30 filename3
drwxr-xr-x 9 USER GROUP  4096 Jul 20 10:30 filename4
drwxr-xr-x 9 USER GROUP  4096 Jul 20 10:30 filename5

Скорее, мне нужно только:

filename1
filename2
filename3
filename4
filename5

Печать только имен файлов является поведением по умолчанию для ls. Когда вы добавляете -l, вы говорите, что хотите вывод в “долгом формате”. Если вы просто уберете -l, я думаю, это даст вам то, что вы хотите. Вы можете оставить -a, чтобы включить “скрытые” файлы.

Также, как упомянул Стефан, вы можете добавить -1, если хотите, чтобы каждый файл был на отдельной строке, что произойдет с -1 или без него, когда вывод будет перенаправлен в файл или передан другой команде.

Если вы хотите сохранить это в файл, вы можете использовать операторы > или >>, как с любой командой. См. Перенаправления и Что такое управляющие и перенаправляющие операторы оболочки?

Передача вывода ls в cat, похоже, работает в моей оболочке bash (Konsole). Вот вывод с моей системы.

$ ls | cat
bin
boot
cdrom
dev
etc
home
initrd.img
initrd.img.old
lib
lib32
lib64
libx32
lost+found
media
mnt
opt
proc
root
run
sbin
snap
srv
sys
tmp
usr
var
vmlinuz
vmlinuz.old
$ 

Команда ls -1 сохраняет цветной текст в выводе, тогда как команда на основе cat теряет цвета.

Вы можете перенаправить вывод напрямую в файл, используя > или >>.

Например, ls -l > somefile.txt создаст файл с именем somefile.txt, содержащий результаты ls -l. Однако будьте осторожны, так как один > перезапишет все в файле, в который вы перенаправляете. Использование >> добавит вывод в файл, в который вы решите записать.

ls >> somefile.txt вероятно, это команда, которую вы ищете. Для всех файлов, ls -a >> somefile.txt. В очень маловероятном случае, когда ваш ls не печатает результаты в одном столбце при перенаправлении вывода, вы можете явно сказать ему сделать это, используя -1: ls -1 >> somefile.txt.

Ответ или решение

Чтобы получить только имена файлов из вывода команды ls -la (или её сокращённой версии ll), важно понимать, что эта команда по умолчанию выводит название файлов вместе с детальной информацией о них, такой как права доступа, владелец, группа, размер и дата модификации. Если ваша цель — получить только имена файлов в длинном вертикальном списке, существует несколько простых способов для достижения этого.

Основные способы получения имён файлов

  1. Использование ls без дополнительных параметров:
    Команда ls по умолчанию выводит только имена файлов и папок в текущей директории. Если вы хотите включить скрытые файлы (файлы, имена которых начинаются с точки), добавьте параметр -a. В этом случае команда будет выглядеть так:

    ls -a

    Это выведет список всех файлов и папок, включая скрытые, но без дополнительной информации.

  2. Форматирование с помощью параметра -1:
    Если вам нужно, чтобы каждый файл отображался на отдельной строке, вы можете использовать параметр -1 (цифра один), например:

    ls -1

    Для отображения скрытых файлов с использованием подобного формата:

    ls -1a

Сохранение вывода в файл

Если вы хотите сохранить результаты в файл, вы можете использовать операторы перенаправления > или >>. Обратите внимание, что > затирает содержимое файла, в то время как >> добавляет вывод в конец файла. Примеры команд:

  • Для создания нового файла с выводом:

    ls -1 > output.txt
  • Чтобы добавить вывод в уже существующий файл:

    ls -1 >> output.txt

Использование ls -la с дополнительной обработкой

Если вам действительно необходимо использовать команду ls -la, но отфильтровать только имена файлов, можно воспользоваться комбинацией grep и awk или cut. Например:

ls -la | awk '{print $9}'

Либо с использованием cut:

ls -la | cut -d ' ' -f 9

Эти команды будут извлекать только девятый столбец из вывода ls -la, который соответствует имени файла.

Заключение

Таким образом, существует несколько методов получения имён файлов из команды ls. Наиболее простыми и эффективными являются использование ls с параметрами -a и -1 для получения нужного вида списка. При этом, если необходимо, можно легко перенаправить вывод в файл. Убедитесь, что вы используете правильные операторы перенаправления, чтобы избежать потери данных. Если же требуется использовать ls -la, можно воспользоваться дополнительными утилитами для обработки вывода.

Оцените материал
Добавить комментарий

Капча загружается...