touch:ファイルに触れることはできません:そのファイルまたはディレクトリはありません。

touch:ファイルに触れることはできません:そのファイルまたはディレクトリはありません。

エラーが発生します。

touch: cannot touch `/opt/tsrm/compliance/cme/log/20121207.log`: No such file or directory

タッチ時のコマンド:touch $LOGFILE

また、リンクを確認しました。touch: 'foo'に触れることができません:そのファイルまたはディレクトリがありませんしかし、答えを理解していません。

注:これも得ました。オプションをmkdir: cannot create directory追加して-p問題を解決しました。

これは私が使用しているLinuxのバージョンに関連している可能性がありますか?

答え1

ファイルを保存するパスがありません。

/opt/tsrm/compliance/cme/log/

ここでエラーが発生します。

答え2

パスを間違って入力したようです。たとえば、フォルダが/stuff/more_stuff存在しません。結果は次のとおりです。

user@linux:~ $ touch /stuff/more_stuff/stuff.file
touch: cannot touch `/stuff/more_stuff/stuff.file': No such file or directory

両方が必要な/stuff機能を/stuff/more_stuff実行できます。touch

答え3

この回答が愚かな場合でも、欠落しているディレクトリに加えて、値の周りに文字列区切り文字がある可能性があります。$LOGFILE

布材:

LOGFILE=/stuff/more_stuff/stuff.file
touch $LOGFILE

動作しない:

LOGFILE="/stuff/more_stuff/stuff.file"
touch $LOGFILE

一部のLinuxディストリビューションには上記のような特徴があるので注意してください;)

答え4

はい、タイプミスがあるか、ディレクトリが存在しない可能性があります。

LOGFILE="/opt/tsrm/compliance/cme/log/20121207.log"
LOG_DIR=`dirname $LOGFILE`
[ ! -d $LOG_DIR ] && mkdir -p $LOG_DIR
touch $LOGFILE

関連情報