我有一個包含 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
s
youtube_videos
(注意該target
目錄必須事先存在)。