Я хочу удалить .. и. запись на выходе ls
. Как всегда, работаетКак я могу избавиться от ./ и ../ в выводе ls
ls . | sed '/^\.\./d;/^\.\//d'
не работает для меня (./
все еще здесь), и я не могу понять, почему.
Я хочу удалить .. и. запись на выходе ls
. Как всегда, работаетКак я могу избавиться от ./ и ../ в выводе ls
ls . | sed '/^\.\./d;/^\.\//d'
не работает для меня (./
все еще здесь), и я не могу понять, почему.
ls
имеет -A
вариант именно для этой цели:
ls -A
От man ls
:
-A, --almost-all
do not list implied . and ..
Примечательно, что это расширение BSD, не гарантированное POSIX. –
@CharlesDuffy Доступно также и для систем GNU. – heemayl
«Не гарантируется POSIX» должен был стать оперативным текстом. Да, существует множество перекрестных опытов между расширениями GNU и BSD. –
По умолчанию ls
не печатает эти данные в первую очередь, ни какие-либо другие, чьи имена начинаются с .
. Также он не печатает косые черты после имен каталогов. То, что ваша простая команда ls
делает эти вещи, предполагает, что у вас есть псевдоним (скорее всего) или, возможно, функция оболочки с этим именем в вашей среде. Вы можете перечислить текущие псевдонимы в среде оболочки с помощью команды alias -p
.
В любом случае, вы можете обойти псевдоним/функцию, не удаляя ее, используя абсолютный путь: /bin/ls
. В случае псевдонима, по крайней мере, вы можете указать опцию -A
для подавления .
и ..
, но если эта (нестандартная) опция поддерживается значением, которое оно имеет для GNU и BSD ls
, то оно не будет подавлять другие dotfiles (это может быть именно то, что вы хотите).
BTW, ['ls' не является подходящим инструментом для программного использования] (http://mywiki.wooledge.org/ParsingLs); попытки использовать его вывод в вашем программном обеспечении * будут вызывать ошибки, если вы столкнетесь с интересными именами файлов или выполняетесь на платформе с поведением, которое отличается от того, где вы проводили тестирование. Если вы пытаетесь использовать его в интерактивном режиме, то, наоборот, https://superuser.com/ - это правильное место для вопросов, касающихся * использования * инструментов, а не их разработки. –
'ls .' не отображает записи' .'. или '..'. Есть ли псевдоним для 'ls'? Какая у вас ОС? –