我想在bash中創建一個別名,如果我輸入'logs',它應該帶我到最新的日誌文件。我的文件夾結構是〜/ logs/date/time。谷歌搜索了一段時間後,我發現了下面的命令,並將其工作正常,如果我在bash中給出提示在bash中的.aliases文件中逐個執行命令
cd ~/logs && cd `ls -tr | tail -1` && cd `ls -tr | tail -1`
但如果我添加它.aliases並將其映射到「日誌」,那麼預期它不工作。它的CD到日誌,然後嘗試進入最新的文件/文件夾,我執行命令。 (例如)如果我處於FOLDER1並執行「日誌」,它會將 光盤放入日誌中,然後嘗試將光盤放入FOLDER1中的最新文件夾。
編輯:我的別名定義
alias logs="cd ~/logs && cd `ls -tr | tail -1` && cd `ls -tr | tail -1`"
任何想法,爲什麼它的行爲就像這個&我怎樣才能使這項工作?
另外:'ls -t'是** not **找到最新/最舊的可用文件的安全方法。請參閱[ParsingLs](http://mywiki.wooledge.org/ParsingLs)和[BashFAQ#3](http://mywiki.wooledge.org/BashFAQ/003)。 –
...如果日誌目錄中的選定文件名稱中包含空格,則此代碼工作得非常糟糕,少得多的奇特字符(如換行符)。 –
順便說一句,如果你顯示*你的別名定義本身*,這將是有益的。從問題中可以明顯看出,您使用雙引號而不是單引號,但如果顯示它,我們不必推斷它。 –