web-dev-qa-db-ja.com

mkdir fooへのショートカットはありますか?

これは私が頻繁に行うことです

$ mkdir foo
$ cd foo

これは単一のコマンドとして機能しますが、より多くのキーストロークで時間を節約できません。

$ mkdir foo && cd foo

これのショートカットはありますか?

編集する

以下のヘルプを使用すると、これは最もエレガントな答えのようです。

# ~/.bashrc
function mkcd {
  if [ ! -n "$1" ]; then
    echo "Enter a directory name"
  Elif [ -d $1 ]; then
    echo "\`$1' already exists"
  else
    mkdir $1 && cd $1
  fi
}
93
macek

私はLinux/bashの専門家ではありませんが、これを.bashrcに入れてみてください。

function mkdir
{
  command mkdir $1 && cd $1
}

PS command mkdirをご利用いただきありがとうございます。

46
Andy

bashzshシェル

別の関数を覚えてほしくなく、バシズムを気にしない場合:

$ mkdir /home/foo/doc/bar && cd $_

$_(ドルの下線)bashコマンド変数には、最新のパラメーターが含まれています。したがって、ユーザーがコマンドラインで次のように入力した場合:echo foo bar && echo $_ bazの場合、出力は次のようになります。

foo bar
bar baz

fishシェル

魚のシェルでは、次のように入力します。

> mkdir/home/foo/doc/bar 
> cd alt + ↑

Altキーと上矢印キーまたは下矢印キーのいずれかと組み合わせると、コマンドパラメータの履歴が循環します。

99
kzh

oh-my-zshユーザーの場合:
$ take 'directory_name'

リファレンス: https://github.com/robbyrussell/oh-my-zsh/wiki/Cheatsheet

25
Avijit Gupta

何について:

$ mkdir newdirname; cd $_

&&を使用するよりも簡単です。quackquixoteの回答とkzhの回答を組み合わせます。

11
Alex

あなたはこのようなことを試すことができます:

#!/bin/sh
mkdir $1 && cd $1

このスクリプトをパス内のどこかに保存します。たとえば、/ usr/local/binまたは〜/ bin(この最後のスクリプトを〜/ .profileファイルのパスに入れる必要があります)。その後、単にそれを呼び出すことができます。

7
petersohn
$echo 'mkcd() { mkdir -p "$@" && cd "$_"; }' >> ~/.bashrc
$mkcd < pathtofolder/foldername >
5
mshameers

これは、このタスクを実行する~/.config/fish/config.fishファイルに入れた簡単な関数です。

function mkcd
    mkdir -pv $argv;
    cd $argv;
end

-pvタグを使用すると、サブディレクトリを持つディレクトリを作成できます。

2

以下の関数は1つのディレクトリしか作成できないことがわかりました。同時にサブディレクトリを作成したい場合、機能しません。

function mkdir
{
  command mkdir $1 && cd $1
}

だから私はそれを変更しましたが、今はうまくいきます!

function mkcd
{
  command mkdir -pv $1 && cd $1 && echo "Now in `pwd`"
}
0
user5723841

ディレクトリがすでに存在する場合、目的の結果によって異なります。

ディレクトリがすでに存在する場合は失敗

mkcd() {
    mkdir $1 && cd $1
}

ディレクトリに関係なく変更

mkcd() {
    mkdir $1 ; cd $1
}

使用方法 mkcd some/path/to/my/dir

0
bingles