【发布时间】:2020-03-09 23:49:00
【问题描述】:
在列出一堆文件后,我试图通过管道传输 TAR。 首先,我尝试根据日期列出我的文件。像这样:
ll /home/dan/test/dir*/file* | grep 2014
-rw-r--r-- 1 root root 0 Jan 2 2014 /home/dan/test/dir1/file1_2014_1
-rw-r--r-- 1 root root 0 Jan 2 2014 /home/dan/test/dir1/file1_2014_10
-rw-r--r-- 1 root root 0 Jan 2 2014 /home/dan/test/dir1/file1_2014_100
-rw-r--r-- 1 root root 0 Jan 2 2014 /home/dan/test/dir1/file1_2014_11
-rw-r--r-- 1 root root 0 Jan 2 2014 /home/dan/test/dir1/file1_2014_12
...
-rw-r--r-- 1 root root 0 Jan 2 2014 /home/dan/test/dir4/file4_2014_97
-rw-r--r-- 1 root root 0 Jan 2 2014 /home/dan/test/dir4/file4_2014_98
-rw-r--r-- 1 root root 0 Jan 2 2014 /home/dan/test/dir4/file4_2014_99
由于结果有点污染,我尝试对其进行过滤。
ll /home/dan/test/dir*/file* | grep 2014 | cut -f 2- -d "/" | sed 's/home/\/home/'
/home/dan/test/dir1/file1_2014_1
/home/dan/test/dir1/file1_2014_10
/home/dan/test/dir1/file1_2014_100
/home/dan/test/dir1/file1_2014_11
/home/dan/test/dir1/file1_2014_12
...
/home/dan/test/dir4/file4_2014_97
/home/dan/test/dir4/file4_2014_98
/home/dan/test/dir4/file4_2014_99
它只给出了文件路径和名称。 然后我尝试使用管道对这个列表进行 TAR,但没有成功。
所以我将列表导出到文件
ll /home/dan/test/dir*/file* | grep 2014 | cut -f 2- -d "/" | sed 's/home/\/home/' > list_files_2014.txt
现在,我需要对这个列表进行 TAR。
但是当我尝试时它给了我一个错误:
tar -cvjf test.tar.bz2 -T list_files_2014.txt
tar: Removing leading `/' from member names
/home/dan/test/dir1/file1_2014_1
/home/dan/test/dir1/file1_2014_10
/home/dan/test/dir1/file1_2014_100
/bin/sh: 1: /home/dan/test/dir1/file1_2014_11
bzip2: not found/home/dan/test/dir1/file1_2014_12
/home/dan/test/dir1/file1_2014_13
/home/dan/test/dir1/file1_2014_14
/home/dan/test/dir1/file1_2014_15
/home/dan/test/dir1/file1_2014_16
/home/dan/test/dir1/file1_2014_17
/home/dan/test/dir1/file1_2014_18
/home/dan/test/dir1/file1_2014_19
/home/dan/test/dir1/file1_2014_2
/home/dan/test/dir1/file1_2014_20
/home/dan/test/dir1/file1_2014_21
/home/dan/test/dir1/file1_2014_22
/home/dan/test/dir1/file1_2014_23
/home/dan/test/dir1/file1_2014_24
/home/dan/test/dir1/file1_2014_25
/home/dan/test/dir1/file1_2014_26
tar: test.tar.bz2: Cannot write: Broken pipe
tar: Child returned status 127
tar: Error is not recoverable: exiting now
谁能帮帮我? 谢谢
【问题讨论】:
-
什么意思?
-
bzip2未找到。要么安装它,要么不使用-j选项到tar -
which bzip2的输出是什么 -
如果没有安装 bzip2
sudo apt-get install bzip2
标签: shell tar broken-pipe