Відповіді:
Або зробіть внутрішню пару лапок подвійними лапками:
alias hidden='ls -a | grep "^\."'
Або зробіть зовнішню пару лапок подвійними лапками:
alias hidden="ls -a | grep '^\.'"
Або зробіть усі лапки подвійними цитатами та вийдіть із внутрішньої пари:
alias hidden="ls -a | grep \"^\.\""
Або зробіть це функцією, щоб ви могли передавати деякі аргументи під час виклику:
hidden() { ls -a "$@" | grep '^\.'; }
Запропонуйте оболонці список точкових файлів і скажіть, ls
щоб не бачили їх через каталоги:
ls -d .*
grep
підходу, заснованого на основі.
ls -d .* | grep -v '^d'
або (лише zsh)print -lr .*(.)
ls -Ad .* #This will list all the hidden files & directories while retaining the color & formatting
АБО
Щоб створити той же псевдонім:
alias lh='ls -Ad .*'
АБО
Те саме можна зробити за допомогою команди grep та оператора труби; однак це втратить колір і форматування:
ls -a|grep "^\."
АБО
Через псевдонім:
alias lh='ls -a|grep "^\."'
Для запису це, здається, не працює зі мною, оскільки ls -a
друкує два (іноді більше колонок). Я рекомендую використовувати -1
параметр, щоб переконатися, що кожен файл знаходиться у своєму рядку. Щось на зразок цього:
alias hidden='ls -a1 | grep "^\."'
ls -a | cat
він все ще виводить на 2 колонки. Я повинен зазначити, що я використовую Solaris, а не GNU. Можливо, саме тому. У всіх випадках ваше -1
рішення спрацювало ідеально і набагато елегантніше, ніж мій хакітський спосіб вирішення. Я актуалізую свою відповідь.
Зробити це трохи складніше, але уникати розборуls
.
llsh () { find "${@:-.}/" -maxdepth 1 -type f -name ".*" -ls; }
lsh () { find "${@:-.}/" -maxdepth 1 -type f -name ".*" -print; }
Функція двох оболонок використовуватиме find
для генерування списку всіх прихованих регулярних файлів у поточному каталозі або в каталозі, вказаному в командному рядку.
llsh
Функція буде генерувати «довгий перелік» , який буде тільки трохи більш багатослівним , ніж ls -l
, в той час як lsh
генерує один стовпець списку , як ls -1
.
# add it to ~/.bashrc
hidden() { # lists hidden files and directories
find . -maxdepth 1 -name '.?*' -exec ls --color -d {} \;
}
hiddenfiles() { # lists hidden files
find . -maxdepth 1 -type f -name '.?*' -exec ls --color -d {} \;
}
hiddendirs() { # lists directories
find . -maxdepth 1 -type d -name '.?*' -exec ls --color -d {} \;
}
Ваша ls
підтримка -A? Від man ls
:
-a, --all
do not ignore entries starting with .
-A, --almost-all
do not list implied . and ..
$ ls --version
ls (GNU coreutils) 8.5
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Richard M. Stallman and David MacKenzie.
only
заховати файли.
ls -A -1 -d -F .* | egrep -v '/$'
Просто введіть команду нижче і не плутайте з описаними вище матеріалами.
ls -A -1 -d -F .* | egrep -v '/$'
ls
прапори і egrep
команда відповідають на питання.
ls -lart | sed -n "/ \.[A-Za-z0-9][A-Za-z0-9]*/p"
'ls -a | grep '"'"'^\.'"'"'
Це виглядає жахливо (і для цього прикладу це зовсім непотрібно, оскільки ви можете просто поміняти подвійні лапки для будь-якої з пар), але в дуже рідкісних випадках це корисно. Ви також можете захотіти-C
прапор (примусовий вихід у багато стовпців). Дивіться це зображення imgur.com/a/VIVFP