如何在 DU 和 TAR 命令中排除文件夹
How to exclude folders in DU and TAR commands
我使用这样的命令:
tar cf - /folder-with-big-files -P | pv -s $(du -sb /folder-with-big-files | awk '{print }') > big-files.tar.gz
来自 THIS 网站。它工作得很好,但我需要在 TAR 和 DU 命令中排除 2 个文件夹,我对此有疑问。或许订单有问题?
我试过这个:
tar cf --exclude={"/data/media/0/!Temp/!Test/bellota","/data/media/0/!Temp/!Test/Xiaomi"} "$mainLocation" - "$mainLocation" -P | pv -s $(du -sb --exclude={"/data/media/0/!Temp/!Test/bellota","/data/media/0/!Temp/!Test/Xiaomi"} "$mainLocation" "$mainLocation" | awk '{print }') > "$tarArchiveLocationWithName"
但是这个命令不起作用。
我的脚本主要代码:
#!/bin/bash
mainLocation='/data/media/0/!Temp/!Test'
tarArchiveLocationWithName="/data/media/0/!Temp/!backup-$(date +%Y-%m-%d_%H-%M-%S).tar"
tar cf - "$mainLocation" -P | pv -s $(du -sb "$mainLocation" | awk '{print }') > "$tarArchiveLocationWithName"
使用 GNU tar 和来自 GNU coreutils 的具有绝对路径的 du:
#!/bin/bash
mainLocation='/data/media/0/!Temp/!Test'
ex1='/data/media/0/!Temp/!Test/bellota'
ex2='/data/media/0/!Temp/!Test/Xiaomi'
tarArchiveLocationWithName='/tmp/big-files.tar'
# get size in bytes without excludes
size=$(du -sb --exclude="$ex1" --exclude="$ex2" "$mainLocation" | awk '[=10=]=')
# create tar without excludes
tar -C / --exclude="$ex1" --exclude="$ex2" -c -P "$mainLocation" | pv -s "$size" > "$tarArchiveLocationWithName"
我使用这样的命令:
tar cf - /folder-with-big-files -P | pv -s $(du -sb /folder-with-big-files | awk '{print }') > big-files.tar.gz
来自 THIS 网站。它工作得很好,但我需要在 TAR 和 DU 命令中排除 2 个文件夹,我对此有疑问。或许订单有问题?
我试过这个:
tar cf --exclude={"/data/media/0/!Temp/!Test/bellota","/data/media/0/!Temp/!Test/Xiaomi"} "$mainLocation" - "$mainLocation" -P | pv -s $(du -sb --exclude={"/data/media/0/!Temp/!Test/bellota","/data/media/0/!Temp/!Test/Xiaomi"} "$mainLocation" "$mainLocation" | awk '{print }') > "$tarArchiveLocationWithName"
但是这个命令不起作用。
我的脚本主要代码:
#!/bin/bash
mainLocation='/data/media/0/!Temp/!Test'
tarArchiveLocationWithName="/data/media/0/!Temp/!backup-$(date +%Y-%m-%d_%H-%M-%S).tar"
tar cf - "$mainLocation" -P | pv -s $(du -sb "$mainLocation" | awk '{print }') > "$tarArchiveLocationWithName"
使用 GNU tar 和来自 GNU coreutils 的具有绝对路径的 du:
#!/bin/bash
mainLocation='/data/media/0/!Temp/!Test'
ex1='/data/media/0/!Temp/!Test/bellota'
ex2='/data/media/0/!Temp/!Test/Xiaomi'
tarArchiveLocationWithName='/tmp/big-files.tar'
# get size in bytes without excludes
size=$(du -sb --exclude="$ex1" --exclude="$ex2" "$mainLocation" | awk '[=10=]=')
# create tar without excludes
tar -C / --exclude="$ex1" --exclude="$ex2" -c -P "$mainLocation" | pv -s "$size" > "$tarArchiveLocationWithName"