Как я могу избавиться от./ и../ в выводе ls
Я хочу удалить.. и. запись в ls
выход. Как всегда, работает
ls . | sed '/^\.\./d;/^\.\//d'
не работает для меня (./
все еще здесь) и я не могу понять, почему.
2 ответа
ls
имеет -A
Вариант именно для этой цели:
ls -A
От man ls
:
-A, --almost-all
do not list implied . and ..
По умолчанию ls
не печатает эти записи в первую очередь, ни те, чьи имена начинаются с .
, Также он не печатает косую черту после имен каталогов. Это твоя равнина ls
команда делает то, что предполагает, что у вас есть псевдоним (скорее всего) или, возможно, функция оболочки с таким именем в вашей среде. Вы можете перечислить текущие псевдонимы в вашей оболочке с помощью команды alias -p
,
В любом случае, вы можете обойти псевдоним / функцию, не удаляя ее, используя абсолютный путь: /bin/ls
, По крайней мере, в случае псевдонима вы можете указать -A
возможность подавления .
а также ..
, но если эта (нестандартная) опция поддерживается со значением, которое она имеет для GNU и BSD ls
тогда он не будет подавлять другие точечные файлы (которые могут быть именно тем, что вы хотите).