2017-08-10 95 views
0

我有一個目錄,此結構:擊刪除所有文件夾中除了一些

main/ 
    Antispam/res/values/ 
     strings.xml 
     plurarls.xml 
     arrays.xml 
    Backup/res/values/ 
     strings.xml 
     plurarls.xml 
     arrays.xml 

AntispamBackup裏面有其他的文件夾,但我不需要這些。我只想要具有三個XML文件(strings.xmlplurarls.xmlarrays.xml)的values文件夾。我怎樣才能做到這一點?

+0

它真的很差書面答覆,我會盡我所能回答,但嘗試改進:https://stackoverflow.com/help/how-to-ask – m47730

+0

歡迎來到堆棧溢出!請[編輯]您的問題以顯示[迄今爲止的代碼](http://whathaveyoutried.com)。你至少應該包括一個你遇到問題的代碼大綱(但最好是[mcve]),然後我們可以嘗試幫助解決具體問題。你還應該閱讀[問]。 –

回答

0

請在備份數據之前備份您的數據!

,如果你不關心空迪爾斯(或者你不在乎做的一切用一個命令),我會做這樣的事情:

find ! -name strings.xml ! -name plurarls.xml ! -name arrays.xml -type f -delete 
如果你關心空迪爾斯

find -type d -print0 | xargs -0 rmdir -p 
+1

可以使用'-delete'而不是'| xargs rm'除非有特定的理由不這樣做。 –

+1

我認爲你省略了目錄名 - 在任何謂詞參數前查找至少需要一個。根據Bash設置,'!'可以是一個元字符,所以我建議引用它。 –

+0

它不需要,只需使用當前目錄作爲源目錄。 +1爲引用建議,但我從來沒有打過案例 – m47730

0

這就是我會做的。基本上只是找到不包括父文件夾的文件夾並將它們發送給遺忘。

find main/Antispam/res/values/ '!' -path main/Antispam/res/values/ -type d | xargs rm -f -r $1 
find main/Backup/res/values '!' -path main/Backup/res/values -type d | xargs rm -f -r $1 

希望它適合你! :)

+1

對不起,您的腳本不能正常工作:(感謝您的幫助 – ale8530

+0

@ ale8530問題出在哪裏? –

+0

我沒有錯誤,但它對文件夾沒有任何影響 – ale8530

0

如果在目錄運行以下命令:

find . -regex '.*backup.*' 

你有這樣的事情:

./backup 
./backup/res 
./backup/res/value 
./backup/res/value/00.xml 
./backup/res/value/02.xml 
./backup/res/value/01.xml 

然後你就可以通過-not

反轉匹配
find . -not -regex '.*backup.*' 

當然你可以做得更多具體有-type d和文字./

find . -type d -not -regex './backup.*' 

,然後做你與輸出

+0

對於我這種工作: ale8530 @ vmi81507:〜/ Scrivania/APK-工具的Linux主機/工作$找到-regex '* RES /價值/串*。' ./WaliLive/res/values。 /strings.xml ./SystemAdSolution/res/values/strings.xml 你能此輸出複製到另一名董事Ÿ保持相同的輸出 例如 從? - > ./ WaliLive/RES /價值/ strings.xml到。 /WaliLive.apk/res/values/strings.xml 謝謝 – ale8530

+0

@ ale8530 **是的,您可以**如果您的意思是:將輸出保存爲簡單的日誌/文本文件。只需使用'>'操作符來重定向輸出,這個'>'會將輸出發送給你的文件,而不是屏幕。 '提示$ find。 > list.txt'。如果不是你的意思,請澄清你的請 –

+0

我希望能夠複製在另一個目錄中找到的文件,保持起始目錄例如複製 - > ./ WaliLive/res/values/strings.xml到./WaliLive.apk/res/values/strings.xm – ale8530

0

這項工作就像是我的任何事情:

[email protected]:~/Scrivania/APK-Tools-Linux-master/working$ find . -regex '.*res/values/strings.*'

./WaliLive/res/values/strings .xml ./SystemAdSolution/res/values/strings.xml ./SampleExtAuthService/res/values/strings.xml ./DocumentsUI/res/values/strings.xml ./CaptivePortalLogin/res/values/strings.xml ./SoundRecorder/ res/values/strings.xml ./Exte rnalStorageProvider/res/values/strings.xml ./MiuiCompass/res/values/strings.xml ./CloudBackup/res/values/strings.xml ./BackupRestoreConfirmation/res/values/strings.xml ./AntHalService/res/values/ strings.xml ./MiuiSuperMarket/res/values/strings.xml ./DownloadProvider/res/values/strings.xml ./VpnDialogs/res/values/strings.xml ./XiaomiAccount/res/values/strings.xml ./SpacesCore /res/values/strings.xml ./CdmaCallOptions/res/values/strings.xml

您可以將此輸出複製到另一位導演 y?保持相同的輸出?

例如

從 - >。/ WaliLive /res/values/strings.xml到./ WaliLive.apk /res/values/strings.xml

感謝

+0

**我不確定要理解你的意思!**但是首先在這裏刪除你的答案。其次,請看[問]和[答]。如果您有任何問題,請在我的回答中留言**評論**。 –

相關問題