Как я могу сначала сделать «ls» show dotfiles?

Где-то по пути я испортил свою команду ls, и теперь я получаю этот заказ при запуске

$ ls -AhHl --color=auto -rwxr-xr-x 1 clang clang 640 Mar 1 02:46 apple-touch-icon-precomposed.png -rwxr-xr-x 1 clang clang 784 Jul 12 02:54 crossdomain.xml -rwxr-xr-x 1 clang clang 1.2K Mar 1 02:46 favicon.ico drwxr-xr-x 8 clang clang 4.0K Jul 12 23:50 .git -rw-r--r-- 1 clang clang 17 Feb 29 19:48 .gitignore -rwxr-xr-x 1 clang clang 1.4K Jul 12 02:54 humans.txt 

Что я сделал, что заставляло игнорировать dotfiles и вместо этого заказывать по первой букве?

Если это поможет вам просмотреть все мои dotfiles здесь

Результат locale :

 $ locale LANG= LANGUAGE= LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=en_US.UTF-8 

Попробуйте добавить

 export LC_COLLATE="C" 

В ваших dotfiles или изменении назначения LC_ALL :

 export LC_ALL="C" 

Это управляет тем, как работает сортировка на уровне символа – в то время как по умолчанию было бы сортировать dotfiles inline, это сначала сделает sort списка dotfiles.


Чтобы идти дальше, цитируя руководство GNU Coreutils (основное внимание):

Если вы используете языковой стандарт, LC_ALL от POSIX (например, установив LC_ALL в en_US ), сортировка может выдавать выходные данные, которые сортируются по-другому, чем вы привыкли.

В этом случае установите для переменной среды LC_ALL значение C Обратите внимание, что установка только LC_COLLATE имеет две проблемы. Во-первых, это неэффективно, если также установлен LC_ALL . Во-вторых, он имеет неопределенное поведение, если LC_CTYPE (или LANG , если LC_CTYPE не установлен) установлен на несовместимое значение. Например, вы получаете неопределенное поведение, если LC_CTYPEja_JP.PCK но LC_COLLATEen_US.UTF-8 .

Чтобы избежать каких-либо изменений в системе без реальной необходимости, можно изменить только то, как ls работает для текущего пользователя, добавив псевдоним в .bashrc :

alias ll='LC_COLLATE=C ls -alF'

Сначала это сортирует файлы точек, позволяет правильно обрабатывать (показывать и сортировать) «необычные» наборы символов, например, кириллицы. Единственный виновник, что сортировка будет чувствительной к регистру.

Источник: http://ubuntuforums.org/showthread.php?t=816753

настройка

 LC_ALL="C.UTF-8" 

Отлично работает для меня – умлауты и «ls -la» сначала перечисляют dot-файлы.

Идея о стене

Отказ от ответственности: это будет слишком много для большинства из вас. Но я делаю это с 1995 года, и у меня есть навыки, чтобы сделать мой мир именно тем, как я этого хочу. Итак, почему бы и нет?

Мне очень нравится использовать разные методы сортировки с ls , особенно -rt (который сортируется по r измененному t ime). Итак, я решил попробовать что-то сумасшедшее и использовать awk для сортировки.

 # save as ~/.ls.awk # inpsired by http://superuser.com/questions/448291/how-can-i-make-ls-show-dotfiles-first { if($1 == "total"){ print $0 next } # may need to adjust $9 to match your name column if(match($9, /^(\033\[[0-9]*m)*\./)) # optionally look past xterm highlighting like: ^[[34m df[++dd] = $0 else nf[++nn] = $0 } END{ while (++d in df) print df[d] while (++n in nf) print nf[n] } 

Теперь вместо определения псевдонима bash, я определяю функцию bash (потому что псевдонимы могут только добавлять аргументы в конце, но функции могут использовать их в любом месте)

 ll(){ CLICOLOR_FORCE=1 ls -lhA $* | awk -f ~/.ls.awk; } 

Чтобы увидеть результаты

Давайте создадим несколько файлов примеров:

 for n in 4 .4 3 .3 2 .2 1 .1; do touch $n; sleep 1; done 

Используя простой ls

 $ ls -lA total 8 -rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .1 -rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .2 -rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .3 -rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .4 -rwxr-xr-x 1 bbronosky staff 285 Nov 29 13:14 .ls.awk -rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 1 -rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 2 -rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 3 -rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 4 $ ls -lArt total 8 -rwxr-xr-x 1 bbronosky staff 285 Nov 29 13:14 .ls.awk -rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 4 -rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .4 -rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 3 -rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .3 -rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 2 -rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .2 -rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 1 -rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .1 

Использование моей функции, которая фильтрует с помощью awk

 $ ll total 8 -rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .1 -rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .2 -rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .3 -rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .4 -rwxr-xr-x 1 bbronosky staff 285B Nov 29 13:14 .ls.awk -rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 1 -rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 2 -rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 3 -rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 4 $ ll -rt total 8 -rwxr-xr-x 1 bbronosky staff 285B Nov 29 13:14 .ls.awk -rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .4 -rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .3 -rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .2 -rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .1 -rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 4 -rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 3 -rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 2 -rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 1 

Вы можете увидеть мою реализацию этого здесь https://github.com/RichardBronosky/dotfiles/commit/6170c0a9

  • Du и ls сообщают о разном размере каталога?
  • Как перечислить папки с помощью команд bash?
  • Список только каталогов, использующих ls в bash: экзамен
  • Использование регулярных выражений с ls
  • Как интерпретировать результаты команды `ls -l`?
  • Что означает значение @ на выходе «ls» на терминале OS X?
  • Есть ли способ ограничить maxdepth для ls -Rhal?
  • Что означает @ in ls -al?
  • Что означает значение «+» в выводе «ls -l»?
  • Что означает звездочка после имени файла при вводе `ls -l`?
  • Как перечислить файлы рекурсивно и отсортировать их по времени модификации?
  • Давайте будем гением компьютера.