〜/ .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"
動作中のスクリプトのスクリーンショット: