0

次のコマンドでディレクトリを作成しました

/usr/bin/mkdir -p  "${exa}/isrvce-backup";

エクサ ---> /sample/example

isrvce-backup が作成されていることがわかります。そのフォルダーにアクセスしようとすると、次のエラー メッセージが表示されます。

isrvce-backup is not a Directory

この問題を解決する方法を教えてください。シェルスクリプトを使用しています

lsコマンドを実行するisrvce-backupと、そのリストにエントリが表示されます

cd isrvce-backupコマンドとして、そのフォルダーにアクセスしようとしました

編集:ls -l isrvc*コマンドを実行すると、次の出力が得られます

-rwx------+ username none 37 date/time  isrvce-backup

isrvce-backup フォルダーの desc を見ると、ファイルのようです。

完全なディレクトリとしてではなく、mkdir がファイルのアクセス許可を持つフォルダーをどのように作成するのか疑問に思っています。

2)UNIXボックスで同じディレクトリを直接作成しようとしましたが、うまくいきましたが、シェルスクリプトからうまくいかないことがありました。

4

1 に答える 1

3

あなたが言ったエラーを再現することはできません。私はbash-3.2を使用し、ディレクトリが意図したとおりに作成されていることを確認します。bashでこれを試している場合は、bashバージョン(または他のシェル)、このエラーの原因となっている正確なコードスニペット、および次のコマンドの出力を指定してください。作成中のディレクトリ(cat、ls -l、file、stat)など。

$ cat mkdir.sh
#! /bin/bash
exa="/sample"
mkdir -p "${exa}/c"
touch "${exa}/c/d"
file "${exa}/c/d"

$ sudo bash mkdir.sh  ## asks password as the dir is being created on /
Password: 
/sample/c/d: empty

$ ls -l /sample/
total 0
drwxr-xr-x  3 root  wheel  102 Mar  9 18:02 c

$ ls -l /sample/c
total 0
-rw-r--r--  1 root  wheel  0 Mar  9 18:07 d
于 2013-03-09T12:44:29.690 に答える