Я пытаюсь перечислить каждый .tar.gz
файл, используя только следующую команду:
ls *.tar.gz -l
... Это показывает мне следующий список:
-rw-rw-r-- 1 osm osm 949 Nov 27 16:17 file1.tar.gz
-rw-rw-r-- 1 osm osm 949 Nov 27 16:17 file2.tar.gz
Однако мне просто нужно перечислить это так:
file1.tar.gz
file2.tar.gz
а также нет:
file1.tar.gz file2.tar.gz
Как это «правильно» сделать?
ls -1 *.tar.gz
, Но то , что вы хотите использовать этот список для ? Если вы делаете что-то с этими именами файлов, тоls
это неправильный способ сделать это. Посмотрите, почему * не * анализирует `ls` (и что вместо этого нужно сделать)?man ls
. Убедитесь, что ваш отображаемый шрифт имеет хороший контраст между 1 (один) и l (строчная буква ell).Ответы:
-1
Вариант (цифра «один», а не нижнему регистру «L») перечислит один файл в каждой строке, без другой информации:источник
ls -1 *.tar.gz
работает так же хорошо.-
..hiddenfile
,benign.php
,evil.bin
,--hide=*evil*
; без--
вы не увидитеevil.bin
или--hide=*evil*
.-2
(или -3 и т. Д.)! ;-)columns
!)Если вам нужны только имена файлов, вы можете использовать
printf
:... оболочка расширит
*.tar.gz
подстановочный знак до имени файла, затемprintf
напечатает их, за каждым последует новая строка. Этот результат будет немного отличаться от уls
в случае имена файлов с символами новой строки , встроенные в них:настроить
Ls
Printf
источник
ls -b
,ls -Q
Л.С.--quoting-style=...
.printf '%q\n'
. (Оба GNU.)ls
ведет себя по-разному, когда его вывод передается по конвейеру. Например:Поэтому, если вы хотите увидеть все свои
*.tar.gz
файлы, по одному в строке, вы можете сделать это:Но что, если вы не хотите передавать результаты? То есть есть ли способ принудительно
ls
вывести имена файлов по одному в строку, не передавая вывод?Да, с
-1
выключателем. (Это тире с номером 1.) Таким образом, вы можете использовать эти команды:источник
Или с
GNU find
:В противоположность
ls
с*
ним будет искать.tar.gz
файлы рекурсивно:источник
-printf '%P\n'
а не просто-print
- в этот моментfind
будет работать любой совместимый с Posix .-print
что добавит./
перед именем файла.Чуть более окольным и петлевым способом:
РЕДАКТИРОВАТЬ: добавлены кавычки для обработки странных имен файлов
источник
touch -- '-e \a.tar.gz'
по причине, чтобы процитировать ваши переменные и unix.stackexchange.com/q/65803/117549 по причинам, чтобы использовать printf вместо echo-e \a.tar.gz
файлrm -- '-e \a.tar.gz'
должен сделать трюк--
работает дляrm
многих других.rm_etc './-x blah'