Покажите только скрытые файлы (точечные файлы) в псевдониме ls

  • xxdiff: Другой инструмент является xxdiff (GUI), который должен быть установлен, сначала.
  • электронная таблица: Для данных базы данных, электронной таблицы от .csv легко сделан, и формула (A7==K7) ? "" : "diff" или подобный вставленный и вставляемый копией.
44
07.05.2017, 21:48
12 ответов

Любой делает внутреннюю пару двойных кавычек кавычек:

alias hidden='ls -a | grep "^\."'

Или сделайте внешнюю пару двойных кавычек кавычек:

alias hidden="ls -a | grep '^\.'"

Или сделайте все двойные кавычки кавычек и выйдите из внутренней пары:

alias hidden="ls -a | grep \"^\.\""

Или сделайте это функцией, таким образом, можно передать некоторые аргументы при вызове:

hidden() { ls -a "$@" | grep '^\.'; }
28
27.01.2020, 19:34

Имейте оболочку, перечисляют точечные файлы и говорят ls не видеть через каталоги:

ls -d .*
91
27.01.2020, 19:34
  • 1
    Это имеет преимущество разрешения многостолбцового списка, в отличие от этого, grep- основанный подход. –  anol 12.10.2014, 16:17
  • 2
    , Однако показывает также каталоги (как упомянуто). Какой-либо способ сохранить это простым, как и показывают только файлы? –  honzajde 10.09.2016, 12:47
  • 3
    @honzajde вопрос не попросил исключать каталоги. Если Вы хотите исключить каталоги, можно использовать ls -d .* | grep -v '^d' или (zsh только) print -lr .*(.) –  Gilles 'SO- stop being evil' 11.09.2016, 00:39
  • 4
    это не работает на меня на Ubuntu 16.04 –  Andrew_1510 08.10.2017, 11:41

Можно использовать двойные кавычки:

alias hidden="ls -a | grep '^\.'"

или свяжите больше единственных заключенных в кавычки строк

alias hidden='ls -a | grep '\''^\.'\'

или удалите во всех внутренних кавычках

alias hidden='ls -a | grep ^\\.'
4
27.01.2020, 19:34

Для записи это, кажется, не работает со мной с тех пор ls -a печать два (иногда больше столбцов). Я рекомендовал бы использовать -1 опция удостовериться каждый файл находится в его собственной строке. Что-то вроде этого:

alias hidden='ls -a1 | grep "^\."'
2
27.01.2020, 19:34
  • 1
    я просто попробовал ls -a | cat это все еще выводы на 2 столбцах. Я должен упомянуть, что использую Солярис а не GNU ls. Возможно, вот почему. Во всех случаях Ваш -1 решение работало отлично и намного более изящно, чем мое hackish обходное решение. Я обновляю свой ответ. –  rahmu 28.09.2011, 21:53
  • 2
    я, вероятно, пропустил это обсуждение, но посмотрите здесь, если что-то пойдет не так, как надо. –  xralf 28.09.2011, 22:31

Делает Ваш 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.
-1
27.01.2020, 19:34
  • 1
    Да, это делает, но я хотел only скрытые файлы. –  xralf 29.09.2011, 09:44
  • 2
    ls -A -1 -d -F .* | egrep -v '/$' –  waltinator 01.10.2011, 00:01
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 "^\."'
10
27.01.2020, 19:34

Просто введите команду ниже и не путайте с объясненными выше вещами.

ls -A -1 -d -F .* | egrep -v '/$'
-3
20.08.2021, 13:32
find . -type f -name ".*"

ИЛИ

find . -type f -name ".*" | while read file; do basename $file; done
0
20.08.2021, 13:32
ls -lart | sed -n "/ \.[A-Za-z0-9][A-Za-z0-9]*/p"
-3
20.08.2021, 13:32

Это немного усложняет, но избегая анализа ls .

llsh () { find "${@:-.}/" -maxdepth 1 -type f -name ".*" -ls; }

lsh () { find "${@:-.}/" -maxdepth 1 -type f -name ".*" -print; }

Две функции оболочки будут использовать find для создания списка всех скрытых обычных файлов в текущем каталоге или в каталоге, указанном в командной строке.

Функция llsh создаст «длинный список», который будет лишь немного более подробным, чем ls -l, в то время как lsh создаст список из одного столбца. список типа ls -1.

1
20.08.2021, 13:32
# 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 {} \;
        }
0
20.08.2021, 13:32

Первый ответ, который показывает псевдоним, позволяющий добавить путь к каталогу, как обычно

Попробуйте

alias lsh='ls -al --ignore="[^.]*"'

где ls игнорирует все файлы и каталоги, которые НЕ начинаются с.

Или

alias lsh='ls -Al --ignore="[^.]*"'

, чтобы избежать ввода .и ..

Тогда просто позвоните

lsh /path/directory/
1
20.08.2021, 13:32

Теги

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