Короткая версия: я хочу иметь возможность предотвратить появление определенных файлов в выводе ls без добавления точки и, следовательно, изменения их имен.

Длинная версия: Недавно я переместил кучу скриптов и файлов данных в другой каталог, чтобы все было организовано. Многие из моих старых сценариев требуют доступа к этим файлам, поэтому я создал символические ссылки для обратной совместимости. Однако смысл перемещения файлов состоит в том, чтобы сохранить исходную папку в чистоте, поэтому я не хочу видеть символические ссылки. Но как я могу их скрыть, не меняя их имен (добавляя точку) и тем самым нарушая мои старые сценарии?

2 ответа2

1

К сожалению, это невозможно (без программирования собственной пользовательской версии ls). Лучше всего просто отредактировать ваши скрипты.

Можно предотвратить конкретные имена файлов из подкрепляются комками с глобальным переменным $GLOBIGNORE

$ printf '%s\n' *
foo.txt
bar.txt
baz.txt
$ GLOBIGNORE=foo.txt:baz.txt
$ printf '%s\n' *
bar.txt

Если вы действительно хотите, вы можете установить псевдоним в вашем .bashrc , где вы также можете установить переменную $GLOBIGNORE выше.

alias myls='ls -d *'

Тем не менее, это, вероятно, вызовет у вас проблемы где-то вдоль линии. Лучше было бы просто отредактировать ваши скрипты (возможно, используя sed, чтобы сделать их в пакетном режиме, как предложил @terdon).

1

Если в вашей системе Linux установлен файловый менеджер nautilus, вы можете скрыть их от файлового менеджера (nautilus), не делая его невидимым для CLI и не используя точку.

Создать .hidden файл, содержащий список скрытых файлов / папок.

Чтобы использовать эту функцию, просто создайте файл с именем «.hidden» (точка скрыта), расположенную в папке, содержащей файлы / папки, которые вы хотите скрыть. Затем откройте его в текстовом редакторе и затем создайте список имен скрытых файлов / папок, которые вы должны скрыть в папке, содержащей файл «.hidden».

Вы не можете скрыть файлы от ls, не используя "точку", но вы можете изменить разрешения для каталога, содержащего файлы для определенных пользователей с помощью chmod, и сделать его недоступным для них.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .