Alias は新しいディレクトリを作成し、そのディレクトリに移動します。 【複製】

Alias は新しいディレクトリを作成し、そのディレクトリに移動します。 【複製】

そのため、ここではコマンドライン引数を受け入れるコマンドのエイリアスを作成するか、少なくとも作成しようとし、その名前で新しいディレクトリを作成してからそのディレクトリに変更しました。

alias newfolder='mkdir $2 ; cd "$(history | tail -2 | awk '\''NR == 1'\'' | awk '\''{print $3}'\'')"'

エイリアスは正常に作成されましたが、コマンドライン引数を使用してコマンドを実行しようとすると、このエラーメッセージが表示されます。

username:~/workspace (master) $ newfolder a
mkdir: missing operand
Try 'mkdir --help' for more information.
bash: cd: newfolder='mkdir: No such file or directory

答え1

エイリアスではない関数が必要です。努力する:

newfolder() { mkdir -p "$1" && cd "$1"; }

例:

$ pwd
/tmp
$ newfolder dir1/dir2
$ pwd
/tmp/dir1/dir2

メモ:

  1. この-pオプションは、mkdir必要に応じて欠落している親ディレクトリを作成するように指示します。上記の例では、およびdir1は存在しませんがmkdir -p dir1/dir2生成さdir1れますdir2

  2. シェル演算子を使用しているため、&&コマンドcdは成功した場合にのみ実行されます。mkdir

  3. エイリアスは、固定文字列が単語を置き換えることができる非常に単純な状況で役立ちます。エイリアスはパラメータを処理しません。

  4. エイリアスの代わりにシェル関数を使用するため、$1この場合と同様に、必要に応じてパラメータを引用できます。

関連情報