在Python上使用rsync recursive只显示文件名?

2024-05-20 09:30:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用rsync递归到该目录中的所有文件(包括子目录中的所有文件):

rathi/20090209.02s1.1_sequence.txt
rathi/20090209.02s1.2_sequence.txt
rathi/20090729.02s4.2_sequence.txt.gz
rathi/Homo_sapiens_UCSC_hg19.tar.gz
rathi/SRR002321.fastq.bz2
rathi/SRR002322.fastq.bz2
rathi/SRR002323.fastq.bz2
rathi/SRR002324.fastq
rathi/SRR002324.fastq.bz2
rathi/human_g1k_v37.fasta.gz
rathi/s_1_1_sequence.txt
rathi/s_1_sequence.txt
rathi/tesssssssssssssssssssssssssssssstttttttt.txt
rathi/test_data.tar.gz
rathi/Homo_sapiens
rathi/Homo_sapiens/UCSC
rathi/Homo_sapiens/UCSC/hg19
rathi/Homo_sapiens/UCSC/hg19/Annotation
rathi/Homo_sapiens/UCSC/hg19/Annotation/Archives
rathi/Homo_sapiens/UCSC/hg19/Annotation/Archives/ok.txt

我有一个问题。目录列表,如

^{pr2}$

对我没用。我只想得到文件的路径。这种事情只可能与rsync一起使用吗?我使用subprocess.call在Python中调用rsync。在

所以,我希望我的输出是这样的:

rathi/20090209.02s1.1_sequence.txt
rathi/20090209.02s1.2_sequence.txt
rathi/20090729.02s4.2_sequence.txt.gz
rathi/Homo_sapiens_UCSC_hg19.tar.gz
rathi/SRR002321.fastq.bz2
rathi/SRR002322.fastq.bz2
rathi/SRR002323.fastq.bz2
rathi/SRR002324.fastq
rathi/SRR002324.fastq.bz2
rathi/human_g1k_v37.fasta.gz
rathi/s_1_1_sequence.txt
rathi/s_1_sequence.txt
rathi/tesssssssssssssssssssssssssssssstttttttt.txt
rathi/test_data.tar.gz
rathi/Homo_sapiens/UCSC/hg19/Annotation/Archives/ok.txt

Tags: 文件txtucsctarannotationfastqrsyncsequence
3条回答

使用手术室步行,它将列出所有文件。在

import os
for root, dirnames, filenames in os.walk('rathi')
       print filenames

它将列出所有文件名。在

选项过滤器可以帮助你吗?在

rsync filter=-*/

如果你想跳过目录下的所有内容,你可以这样做

rsync -avz  exclude '*/' source_directory destination_directory

如果要跳过所有空目录,可以使用

^{pr2}$

但我不清楚你到底想达到什么目的。你想跳过目录,但不想跳过其中的文件,如果不同步目录,你想在哪里同步它们?或者这只是关于屏幕上的输出?在

如果你只想改变屏幕上的输出,你可以通过grep,即

rsync -avz source_directory destination_directory | grep "\."

那么您将只看到带有.的行。注意,您必须转义.,否则它代表通配符。当然,这假设您的目录名中没有任何点。在

相关问题 更多 >