Перечислите весь dotfiles текущий каталог с помощью zsh

Правильная команда: echo 0 | tee /proc/sys/net/ipv4/conf/*/send_redirects
Поскольку Вы должны иметь 0 на 'всех' и на 'interface_name' для отключения его.

В /etc/sysctl.conf или подобный файл, необходимо установить 'все' + 'значение по умолчанию' (или 'все' +, 'интерфейс' кроме интерфейса не может уже существовать, когда этот файл обрабатывается).

3
26.10.2013, 02:55
2 ответа

Классическим путем мы раньше делали это назад, в день был:

ls .??*

Это перечислило бы весь dotfiles, но не включало бы . или ... Конечно, кто бы ни придумал, это предположило, что весь dotfiles назовут с двумя или больше символами в честь ..

Другая слабость - то, если у Вас есть каталоги, которые запускаются с . затем та команда перечислит содержание его. Тот аспект может быть зафиксирован при помощи -d флаг для ls. Это говорит ls просто показать любые каталоги, указанные на командной строке, не копаясь в них.

В наше время, большинство версий ls включайте -A флаг, который перечислит весь dotfiles в каталоге, но, исключая . или ... И Вы не должны волноваться о помещении a -d флаг на там.

3
27.01.2020, 21:11
  • 1
    И можно исправить первый аспект с чем-то как ls .[^.]* –  Joseph R. 25.10.2013, 22:12
  • 2
    Так или иначе, когда я использую их, я получаю внутренний список точечных каталогов также, которых я хочу избежать. Я хотел бы избежать этого. printf '%s\n' .*(.) синтаксис, кажется, избегает этого. –  jethar 25.10.2013, 23:27
  • 3
    @nobuzz Вы могли использовать ls -d .[^.]*; по крайней мере, с GNU ls, -d средства опции 'не входят в каталоги. –  evilsoup 26.10.2013, 00:07
  • 4
    @nobuzz, Поскольку я упомянул, -d остановки опции это. (evilsoup упомянул это снова чуть выше.) –  kurtm 26.10.2013, 01:11
  • 5
    В zsh, .* исключает . и .., таким образом, никакой специальный уход не необходим. В других оболочках Вам было бы нужно также .[!.] для точечных файлов со всего двумя символами. –  Gilles 'SO- stop being evil' 26.10.2013, 02:56

Не только :

printf '%s\n' .*

или с zsh синтаксисом:

printf '%s\n' .*(.)
5
27.01.2020, 21:11
  • 1
    , которые Это будет включать . и .., который будет хорошо для того, чтобы просто перечислить вещи, но мог бы вызвать проблемы в сценариях. –  evilsoup 25.10.2013, 21:21
  • 2
    Не для меня. И с добавленной командой? –  Gilles Quenot 25.10.2013, 21:38
  • 3
    я использую удар; я только что сверился с zsh, и кажется, что Вы корректны (обе из Ваших команд хорошо работают там). Это все еще кажется стоящим упоминания, что различные оболочки обработают это по-разному. –  evilsoup 25.10.2013, 21:52
  • 4
    Это, кажется, работает. Однако, если я делаю ls .*(.) Я, кажется, получаю очень усеченный список dotfiles. Почему это было бы? –  jethar 25.10.2013, 23:28
  • 5
    @evilsoup .* включает . и .. во всех оболочках кроме zsh, где они всегда опускаются от шариков. –  Gilles 'SO- stop being evil' 26.10.2013, 02:55

Теги

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