2016-05-18 4 views
0

ディレクトリ構造が不足しているファイルを作成するコマンドはありますか?ディレクトリ構造が不足しているファイルを作成するためのコマンドはありません

シェルスクリプトに変数LOG_STORAGE_PATH=/var/log/app-log/access.logがあり、app-logディレクトリとaccess.logファイルが存在するかどうかはわかりません。

存在しない場合はすべての中間ディレクトリを作成するmkdir -p </some/random/path>のような1つのコマンドが存在し、その間に不足しているディレクトリがあるファイルを作成します。

これは

LOG_STORAGE_PATH=/var/log/app-log/ 
ACCESS_LOG_FILE=access.log 
ACCESS_LOG_FILE_PATH=${LOG_STORAGE_PATH}/${ACCESS_LOG_FILE} 
if [ ! -d ${LOG_STORAGE_PATH} ] 
then 
    mkdir -p ${LOG_STORAGE_PATH} 
fi 
if [ ! -f ${ACCESS_LOG_FILE_PATH} ] 
then 
    touch ${ACCESS_LOG_FILE_PATH} 
fi 

の助けを借りて行われていたであろう私はmkdir -pと同じ機能を持つtouchコマンドを探しているが、その存在はなかったです。

ディレクトリが不足しているファイルを作成できるコマンドがある場合、またはディレクトリが存在する場合は、ディレクトリまたはファイルが存在する場合でも、access timeを更新すると非常に便利です。ファイル。

だけの思考のために、多分私達は私達のスクリプトでif [ ! -f <some file> ]またはif [ ! -d <some dir path> ]を使用する必要はありません、我々は直接touch -p ${ACCESS_LOG_FILE_PATH}

+1

[Unix - フォルダとファイルのパスを作成する]の可能な複製(http://stackoverflow.com/questions/9452935/unix-create-path-of-folders-and-file) – piyushj

+0

あなたは'-d'と' -f'でテストします。単に 'mkdir -p'と' touch'を使ってください。 – user1934428

答えて

1

は、UNIXでの単一のコマンドでこれを行うことができませんを使用することもできました。これを行うには、2つのコマンド(mkdirとtouch)が必要です。

関連する問題