Исключить файлы, перечисленные в «.hidden», при использовании «ls»

В моей домашней папке у меня есть файл с именем «.hidden», в который я помещаю имена нескольких файлов и папок, которые я не хочу видеть в этом каталоге. Я не могу изменить их имена, т.е. я не могу поставить точку '.' в начале.

Когда я даю «ls» в терминале, он перечисляет все файлы и папки, включая те, которые перечислены в «.hidden». Я хочу, чтобы «ls» исключил их.

Есть ли способ сделать это?

Мне нужно передать содержимое файла '.hidden' в ls. Что-то вроде:

ls --ignore= [SOME MAGIC HERE] $(tr '\n' ' ' < .hidden)

Благодарю вас! :)


person Jimmy Scionti    schedule 06.12.2018    source источник


Ответы (2)


Вот как я решил это:

alias ls='exclusion=; while read p ; do exclusion=$exclusion" -I$p"; done < ~/.hidden; ls $exclusion --color=auto --group-directories-first'
person Jimmy Scionti    schedule 22.10.2019

У меня есть другое решение! sed, tr и xargs спешат на помощь!

alias ls="sed 's/^/-I \"/' .hidden 2>/dev/null | sed 's/$/\"/' | tr '\n' ' ' | xargs ls --color=auto"
person jameh    schedule 05.04.2020