2016-11-30 108 views
0

我試圖運行一個bash腳本,它應該放在特定的目錄中。 問題是腳本不會進入最新的文件夾。在Bash腳本中更改目錄

該文件夾的樣子:

[email protected] ~/jdownloader/logs # ls -lha 
total 104K 
drwxr-xr-x 9 root root 4.0K Nov 30 11:52 . 
drwxr-xr-x 14 root root 4.0K Nov 30 11:52 .. 
drwxr-xr-x 2 root root 4.0K Nov 30 11:18 1479843940152_Tue, Nov 22, 2016 20.45 +0100 
drwxr-xr-x 2 root root 4.0K Nov 30 11:21 1480501204839_Wed, Nov 30, 2016 11.20 +0100 
drwxr-xr-x 2 root root 4.0K Nov 30 11:22 1480501242752_Wed, Nov 30, 2016 11.20 +0100 
drwxr-xr-x 2 root root 4.0K Nov 30 11:30 1480501308071_Wed, Nov 30, 2016 11.21 +0100 
drwxr-xr-x 2 root root 4.0K Nov 30 11:56 1480503116574_Wed, Nov 30, 2016 11.51 +0100 
drwxr-xr-x 3 root root 12K Nov 23 11:25 extracting 
drwxr-xr-x 2 root root 64K Nov 30 11:22 updatehistory 

中的重要片段從我的腳本是:

#!/bin/bash 
declare dir=/var/log/scriptlog/jdstate 
declare dir2=~/jdownloader/logs 
NewFolder=`ls -rt1 ~/jdownloader/logs -I extracting -I updatehistory | tail -1 > /var/log/scriptlog/jdstate/newfolder.log` 
OutputNewFolder=`head $dir/newfolder.log -n 1` 
cd\ "\"$dir2/$OutputeNewFolder\"" 

當我嘗試運行他表明我的錯誤,他無法找到的目錄中的腳本。
但是,當我複製/粘貼它,他會去目錄。
任何想法如何可以去目錄?

+0

爲什麼CD後有反斜槓?你爲什麼要逃避雙引號? – 123

+0

我只是試圖逃脫空間()後cd 但它沒有影響任何東西 – Naluga

+0

我認爲你有太多的逃生,你不希望文字引號作爲你的'CD'的一部分,你不想要逃離我不認爲的空間。試試'cd'$ dir2/$ OutputNewFolder「'(同樣,正確拼寫OutputNewFolder - 你有一個額外的'e')。另請參閱U&L網站上的[此相關問題](http://unix.stackexchange.com/questions/16622/bash-cd-to-the-most-recently-modified-child-directory) –

回答

0

對於每一個如何尋找答案:

這是我最新的代碼片段至極樂意爲我工作

#!/bin/bash 
declare dir=/var/log/scriptlog/jdstate 
declare dir2=~/jdownloader/logs 
NewFolder=`ls -rt1 ~/jdownloader/logs -I extracting -I updatehistory | tail -1 > /var/log/scriptlog/jdstate/newfolder.log` 
OutputNewFolder=`head $dir/newfolder.log -n 1` 
cd "$dir2/$OutputNewFolder" 

我敢肯定的可以爲最新的文件夾,但改進htis作品只是找我