Mac OSX Lion を使用しています。ディレクトリが非表示か表示かを示すスクリプトが必要です。ディレクトリは .whatyou lookingatfool です。
これは私が今持っているものです...
#!/bin/bash
#Check for dir
if test -d /Users/NSutton/Documents/.whatyoulookingatfool; then
echo "go go go"
else
echo "well shit"
fi
Mac OSX Lion を使用しています。ディレクトリが非表示か表示かを示すスクリプトが必要です。ディレクトリは .whatyou lookingatfool です。
これは私が今持っているものです...
#!/bin/bash
#Check for dir
if test -d /Users/NSutton/Documents/.whatyoulookingatfool; then
echo "go go go"
else
echo "well shit"
fi
ここにはosxマシンはありませんが、macにはbasenameコマンドと十分に新しいbashがあると思います。
#!/bin/bash
dir=$1
bn=$(basename $dir)
if [[ -d $dir && $bn == .* ]]
then
echo yep
else
echo nay
fi
.
これはと..
ディレクトリでは機能しないことに注意してください。
それで、名前が存在する場合は.nameに名前を変更し、その逆も同様ですか?
#!/bin/sh
name=whatyoulookingatfool
for f in . ''; do
test -d "$f$name" || continue
mv "$f$name" "${f:-.}$name"
break
done
さて、Finder によって非表示になっているファイル、またはピリオドで始まるファイルについて話しているので、パラメータ ( など) を指定して表示しない限り、コマンドで非表示になりますか?ls
-a
主にドットについて話している場合は、これをさまざまな方法で行うことができます。1つはAheによって示されています。別の方法は次のとおりです。
if [[ ${fileName%%.*} = "" ] then echo "ファイル名はピリオドで始まります" else echo "ファイル名はピリオドで始まりません" fi
ところで、角括弧はtest
コマンドと同等であり、通常は好まれます。
したがって:
if test -d /Users/NSutton/Documents/.whatyoulookingatfool; then
と同じです
if [ -d /Users/NSutton/Documents/.whatyoulookingatfool ]; then
角括弧の周りのスペースに注意してください。パターン マッチングを実行できる二重角かっこを使用して、Bash プログラムに組み込まれているさらに多くのテストがあります。詳細については、BASH マンページを参照してください。
ここで、ファイルがFinderで非表示になっているかどうかを知りたい場合。たとえば$HOME/Library
、コマンド ライン ツールでは表示されますが、通常は Finder では表示されないため、GetFileInfoコマンドを使用する必要があります。これは Mac OS X に組み込まれており、ファイルが Finder に表示されないと想定されているかどうかを確認します。
また、/.hidden
Mac OS X 10.4 (Tiger) より前に使用されていた非表示のすべてのファイルを一覧表示するディレクトリもあります。
残念ながら、私の前にはテストを実行するための Mac がありません。そのため、正確なコマンドを示すことはできませんが、GetFileInfo のマンページを確認し、少し遊んで、それがどのように機能するかを確認してください。
ところで、次のコマンドを使用して、ファイルの非表示をオンまたはオフにすることができます。
defaults write com.apple.finder AppleShowAllFiles TRUE #Shows hidden files
defaults write com.apple.finder AppleShowAllFiles FALSE #Hides hidden files
Finder を再起動する必要がある場合があります。
killAll Finder