~ / .bash_profile에 다음 Bash 코드를 추가 할 수 있습니다. 특정 폴더 ( "음악", "영화", "사진"등)를 표시하지 않도록 ls
실행할 때 명령을 변경합니다 $HOME
.
이 모든 것은 디렉토리에 ls
표시되는 내용을 변경하는 것 $HOME
입니다. 실제로 폴더는 삭제되지 않습니다. 예를 들어, ls -l
폴더가 여전히 존재하는 것을 볼 수 있습니다.
function ls-home() {
excludeDirectories=(
"Music"
"Movies"
"Pictures"
"Public"
"Documents"
"Desktop"
"Downloads"
"VirtualBox VMs"
)
files=$(comm -23 <( /bin/ls -1) <(printf '%s\n' "${excludeDirectories[@]}" | sort))
temporary_dir=$(mktemp -d)
for file in $files; do
if [ -h $file ]; then
ln -s $file $temporary_dir/$file
elif [ -f $file ]; then
touch $temporary_dir/$file
if [ -x $file ]; then
chmod +x $temporary_dir/$file
fi
else
mkdir $temporary_dir/$file
fi
done
/bin/ls $temporary_dir
rm -rf $temporary_dir
}
function ls-shim() {
if [ "$(pwd)" = "$HOME" ]; then
lastArgument="${@:-1}"
if [ "${lastArgument:0}" = 1 ]; then
ls-home
else
/bin/ls "$@"
fi
else
/bin/ls "$@"
fi
}
alias ls="ls-shim"
사용중인 스크립트의 스크린 샷 :