Как показать только скрытые каталоги, а затем найти скрытые файлы отдельно

Вот попробуйте это

echo $(echo "35/3600" | bc -l )

, чтобы ваша команда выглядела как

echo "Enter the seconds you wish to convert to hours: " && read sec && echo " $(echo "$sec/3600" | bc -l ) is the amount of hours "

Чтобы контролировать количество печатаемых значащих цифр, используйте scale = N . Например:

$ echo "scale=3; 35/3600" | bc -l 
.009

Если вы также хотите напечатать ведущий 0 (что, как ни странно, bc не сработает ), вы можете скормить число в printf (который также может округлить его вверх / вниз для вас):

$ printf '%.3f\n' $(echo "35/3600" | bc -l)
0.010
$ printf '%.4f\n' $(echo "35/3600" | bc -l)
0.0097

4
11.04.2018, 13:57
4 ответа

Чтобы перечислить только скрытых файлов :

ls -ap | grep -v / | egrep "^\."  

Обратите внимание, что файлы здесь все, что не является каталогом . Это не файл в «все в Linux - это файл» ;)

Чтобы перечислить только скрытые каталоги :

ls -ap | egrep "^\..*/$"  

Комментарии:

  • ls -ap lists все в текущем каталоге, включая скрытые , и помещает / в конец каталогов.
  • grep -v / инвертирует результаты grep / , так что каталог не включается.
  • «^ \ .. * / $» соответствует всему, что начинается с . и оканчиваются на / .
  • Если вы хотите исключить . и .. из результатов второй части, вы можете использовать параметр -A вместо -a для ls , или если вам нравится работать с регулярным выражением, вы можете использовать "^ \. [^.] + / $" вместо "^ \ .. * / $" .

Удачи!

6
27.01.2020, 20:48

Переключитесь на zsh (если вы этого еще не сделали), и запустите

ls .*(^/)

Часть внутри скобок - это так называемые модификаторы glob, они означают выбор всего, кроме каталогов.

Если вас интересуют только обычные файлы, и вы хотите исключить не только каталоги, но и другие специальные файлы (именованные трубы и т.д.), то попробуйте

ls .*(.)
2
27.01.2020, 20:48

Эта команда работает:

ls -a | grep ".*"
  • Любой скрытый файл начинается с.

  • *соответствует всем символам

-2
27.01.2020, 20:48

Список скрытых файлов (расширенный формат длинного списка)

find -maxdepth 1 -type f -name '.*' -ls | sed 's/^..//'

Список каталогов (длинный формат)

find -maxdepth 1 -type d -name '.*' -ls | sed 's/^..//'
0
19.08.2021, 18:10

Теги

Похожие вопросы