だから、これは私が持っているひどく複雑な質問のようには見えませんが、答えを見つけることができないものです。 Unixで-p
オプションが何をするかについて混乱しています。サブディレクトリを作成し、そのサブディレクトリ内に別のサブディレクトリを作成する際に、ラボの割り当てに使用しました。このように見えた:
mkdir -p cmps012m/lab1
これは、通常の権利(rlidwka
)を持つプライベートディレクトリにあります。ああ、そして誰かがrlidwka
が何を意味するのかについて少し説明してもいいですか?私はUnixに完全に慣れているわけではありませんが、これが何を意味するのかはあまりよくわかりません。それが質問の曖昧すぎないことを願っています。
マニュアルページは、あなたが見つけることができる最良の情報源です...そしてあなたの指先にあります:man mkdir
は-p
スイッチについてこれをもたらします:
-p, --parents
no error if existing, make parent directories as needed
使用例:ディレクトリhello/goodbye
を作成したいが、何も存在しないと仮定します。
$mkdir hello/goodbye
mkdir:cannot create directory 'hello/goodbye': No such file or directory
$mkdir -p hello/goodbye
$
-p
は両方を作成しました、hello
とgoodbye
これは、コマンドがリクエストを実行するために必要なすべてのディレクトリを作成し、ディレクトリが存在する場合にエラーを返さないことを意味します。
rlidwka
について、Googleには頭字語用の非常に優れたメモリがあります:)。私の検索は、例えばこれを返しました: http://www.cs.cmu.edu/~help/afs/afs_acls.html
Directory permissions
l (lookup)
Allows one to list the contents of a directory. It does not allow the reading of files.
i (insert)
Allows one to create new files in a directory or copy new files to a directory.
d (delete)
Allows one to remove files and sub-directories from a directory.
a (administer)
Allows one to change a directory's ACL. The owner of a directory can always change the ACL of a directory that s/he owns, along with the ACLs of any subdirectories in that directory.
File permissions
r (read)
Allows one to read the contents of file in the directory.
w (write)
Allows one to modify the contents of files in a directory and use chmod on them.
k (lock)
Allows programs to lock files in a directory.
したがって、rlidwka
は次を意味します:All-Permissions on。
@KeithThompsonがコメントで指摘したように、すべてのUnixシステムがACLをサポートしているわけではないことに言及する価値があります。したがって、おそらくrlidwka
の概念はここでは適用されません。
-p|--parent
アプローチでディレクトリを作成しようとしている場合は、top-down
が使用されます。存在しない場合は、親ディレクトリ、次に子ディレクトリなどが作成されます。
-p、--parents既存の場合エラーなし、必要に応じて親ディレクトリを作成
rlidwka
については、完全または管理アクセスを与えることを意味します。ここで見つけました https://itservices.stanford.edu/service/afs/intro/permissions/unix 。
mkdir [-switch]フォルダー名
-p
はオプションのスイッチで、サブフォルダーと親フォルダーを作成します。親フォルダーも存在しません。
Manページから:
-p, --parents no error if existing, make parent directories as needed
例:
mkdir -p storage/framework/{sessions,views,cache}
これにより、「フレームワーク」が以前に使用可能かどうかに関係なく、フレームワークフォルダー内にサブフォルダーセッション、ビュー、キャッシュが作成されます。
-p
は、Unix全体ではなく、mkdir
コマンドに対する引数であることに注意してください。すべてのコマンドには、必要な引数を指定できます。
この場合、「親」を意味します。つまり、mkdir
は、ディレクトリと、まだ存在しない親を作成します。
PATH:ずっと前に答えましたが、-pを "パス"(覚えやすい)と考える方が便利かもしれません。これにより、mkdirはまだ存在しないパスのすべての部分を作成します。
mkdir -p/usr/bin/comm/diff/er/fence
/ usr/bin/commが既に存在する場合、次のように動作します。mkdir/usr/bin/comm/diff mkdir/usr/bin/comm/diff/er mkdir/usr/bin/comm/diff/er/fence
ご覧のとおり、既に存在するものと存在しないものを把握する必要がないため、入力と思考の手間が省けます。