
我正在嘗試使用命令建立目錄mkdir
。但是,我想將文件子集移動到該目錄中。我明白我可以使用參數,但是我的嘗試失敗了。例如,我已經嘗試過mkdir test | xargs -i mv test.text {}
。它會建立目錄,但test.txt
建立後不會將檔案移到其中。
答案1
mkdir
不輸出任何內容,因此xargs
不會做任何有用的事情。我不太明白你到底想做什麼,所以你應該要更好地解釋你的問題。
「想要將檔案子集移到該目錄」-> 該子集中的檔案是否共用一個或多個特徵?如果是,請使用尋找像這樣的命令:
find [conditions] -exec mv "{}" dirname \;
如果您想避免輸入兩次目錄名稱,或者如果您是透過腳本執行此操作,則可以執行類似的操作
dirname=test
mkdir $dirname && mv filename $dirname
答案2
我認為 mkdir 不會產生任何輸出來透過管道傳輸到 xargs。
執行“mkdir test1 test2 testhello3 | grep hello”不會產生任何輸出,而執行“ls | grep hello”將顯示“testhello3”。
您可以先生成資料夾,然後使用 ls、grep、xargs 來執行此操作嗎?
ls | grep (unique search to get folder name) | xargs -i mv test.txt {}
也許有關移動文件標準等的更多資訊會有所幫助。
答案3
我的猜測,接近使用者49740的答案:
mkdir test && find -type f -name 'test.*' -exec mv {} test \;
您想要建立多少個不同的目錄?