ls |ディレクトリを変更するには、tail -1

ls |ディレクトリを変更するには、tail -1

最も高いディレクトリ番号に基づいてディレクトリを入力したいと思います。

シャオル: /home/cg/root/2018/01。このパスには、次のような複数のディレクトリがあります。

15
16
17
So on..

この場合、最上位ディレクトリがある17ので、そのディレクトリに移動したいのですが17…というディレクトリが18存在する場合は、そのディレクトリに移動したいと思います18

cdコマンドを使用してこれを行う方法はありますか?

良い:

cd /home/cg/root/2018/01/$(ls |tail -1)

答え1

find sort以下を使用してheadこれを行うことができます。

cd $(find /home/cg/root/2018/01/* -type d | sort -r | head -1)問題を解決しなければならない

答え2

それだけです。

cd $(ls /home/cg/root/2018/01 | sort -n -r | awk 'NR==1 {print $1})

答え3

関数内で(一時)bash配列を使用する:

cdhighest() {
  local dirs=(/home/cg/root/2018/01/*)
  cd -- "${dirs[-1]}"
}

その後、実行すると、cdhighest/home/cg/root/2018/01の下の最後のディレクトリに移動します。

引用:

答え4

簡単な方法でこれを行うことができます。

cd /home/cg/root/2018/01; cd `ls -r | head -n 1`

関連情報