この記事に関して、最後に変更されたサブディレクトリに cd
バッシュcd "$(\ls -1dt ./*/ | head -n 1)"
zsh cd ./*(/om[1])
最後に変更されたディレクトリに変更します。
しかし、スクリプトはありません魚の皮。
config.fishでbashコードを使用すると、次のように表示されます。
$(...) is not supported. In fish, please use '(\ls)'
誰でも助けることができますか?
答え1
何を試してみましたか?特に。fish
'(\ls)'
cd (ls -1dt ./*/ | head -n 1)
10秒の実験に基づいたようです。編集:\
文字を削除します。
答え2
魚では使用できず、$(command)
使用する必要があります(command)
。追加情報
また、魚では前のバックスラッシュを次のls
ように変更する必要があります。command
要約すると、次のようになります。
cd (command ls -1dt ./*/ | head -n 1)
答え3
出力に依存する代わりにls
GNU coreutilsがあるとします。
cd (stat --printf='%Y:%n\0' ./*/ | sort -zt: -k1nr | head -zn1 | cut -d: -f2-)
答え4
あなたはできます
ls -dt ./*/ | read newest && cd $newest
ただし、改行文字を含むファイル名には機能しません。
最新バージョンのGNUを使用すると、ls
次のように問題を解決できます。
ls --zero -dt ./*/ | read -z newest && cd $newest
またはこれを行うこともできます:
zsh -c 'print -rNC1 ./*(/om[1])' | read -z newest && cd $newest
または、*(-/om[1])
メソッドと同様に、ディレクトリのシンボリックリンク(およびそのターゲットの変更時間)を検討してください*/
。