用一個命令解壓縮並重命名文件

用一個命令解壓縮並重命名文件

我有一個包含 CSV 的 zip 文件,我想將其解壓縮到特定資料夾中,並將該文件重命名為與 zip 檔案名稱相同的名稱。例如。

我有一個名為:youtube_videos.csv.zip 的 zip 文件,我想將其解壓縮到名為 target 的某個資料夾,並將該資料夾中的文件重命名為 youtube-videos.csv。我有它,但分為兩行,如下所示:

unzip datasets/youtube_videos.csv.zip -d target 
mv target/videos_data.csv target/youtube_videos.csv

有沒有一種可以使用的內襯?

答案1

這是一個單行選項,但它不會重命名文件,而是將其內容輸出到標準輸出。也可能無法與該-d選項一起使用(我無法使其工作):

$ unzip -p datasets/youtube_videos.csv.zip videos_data.csv > target/youtube_videos.csv

或者,如果 zip 中只有一個文件,您可以省略壓縮文件的名稱:

$ unzip -p datasets/youtube_videos.csv.zip > target/youtube_videos.csv

-p根據手冊,此選項的作用是:

-p 將文件提取到管道(stdout)。除了檔案資料之外什麼都不會發送到 stdout,並且檔案始終以二進位格式提取,就像儲存時一樣(沒有轉換)。

答案2

使用 libarchive bsdtar

bsdtar -xvvf youtube_videos.csv.zip -C target -'s/videos_data/youtube_videos/g'

將把存檔提取到以存檔成員的名稱替換的target目錄中。videos_data syoutube_videos

(注意該target目錄必須事先存在)。

相關內容