我想复制所有文件,但不包括 2 个文件。
例子:
/var/www/site-domain/htdocs/all 文件但不包括 .git 和 wp-config.php 文件
对不起我的英语不好 :)
答案1
与我之前的回答合并:一个想法是,是的,这是一个漫长的弯路,但是使用 OS 库编写一个 Python 脚本然后运行它。
花了一小会儿时间研究它,Python 文件的代码在下面 - 它也在我的 GitHub 上,以防你想要 .py 文件本身而不必复制粘贴它:https://github.com/n3xtd00rpanda/PythonPlayground/blob/master/copyfiles_final.py
记得安装python3,并使用它chmod +x
来使文件可执行。
进行了大量测试,希望它能按预期工作!如果它解决了您的问题,请随意留下赞并选择我的答案作为满足您问题的答案。:-)
#!/usr/bin/env python3
from fileinput import filename
import os, subprocess, shutil, sys
from re import search
files = []
full_file_path = ""
def fileCopy(nwd):
for file in os.listdir():
file_name, file_extension = os.path.splitext(file)
full_file_path = os.getcwd() + "/" + file_name + file_extension
new_file_path = nwd + file_name + file_extension
subs = ".git"
if file_name.find(".git") == -1 and file_extension != ".git" and os.path.isfile(full_file_path) and file_name != "wp_config" and file_name != "copyfiles_nogitignore":
print("Copying from: ", full_file_path)
print("Copying to: ", new_file_path)
shutil.copyfile(full_file_path, new_file_path)
elif file_extension == ".git" or file_name.find("git") != -1 or file_name == "wp_config" and os.path.isfile(full_file_path):
print("Found file: ", file_name, file_extension, " in working directory. Not copied.")
if __name__ == '__main__':
fileCopy(sys.argv[1])