С GNU find
и GNU cpio
:
find /path/to/aim-db-dir -name .svn -prune -o -print0 | cpio -padmv0 /path/to/aim-db-dir_nosvn
С rsync
:
rsync -av -exclude=.svn /path/to/aim-db-dir/ /path/to/aim-db-dir_nosvn
Косая черта в конце /path/to/aim-db-dir/
важен, без него каталог с именем aim-db-dir
создается в aim-db-dir_nosvn
.
В GNU tar
:
tar cpf - --exclude-vcs -C /path/to/aim-db-dir . | tar xvpf - -C /path/to/aim-db-dir_nosvn
Существует ограничение на максимальную длину путей к файлам, которые вы можете копировать с помощью tar
, исходя из ограничения базового PAX формат.
По умолчанию с etckeeper
/etc
является репозиторием git, поэтому вы можете использовать инструменты git для просмотра его содержимого (и изменений ). Например, вы можете использоватьgitk
(после его установки )для просмотра истории репозитория, а если вы хотите сосредоточиться на конкретном файле, вы можете указать его в командной строке:
cd /etc
gitk apt/sources.list &
Поскольку вы являетесь пользователем KDE,qgit
может показаться вам более удобным.
Я просто использую git log
и git show
или git diff
. например.
# git log --oneline /etc/squid/squid.conf
907df30 saving uncommitted changes in /etc prior to apt run
a612769 daily autocommit
6d45b99 saving uncommitted changes in /etc prior to apt run
0f21707 daily autocommit
9a95a9b saving uncommitted changes in /etc prior to apt run
b2518f4 daily autocommit
338b4a7 daily autocommit
862d5e6 committing changes in /etc after apt run
ff6a8fd daily autocommit
2d64d79 saving uncommitted changes in /etc prior to apt run
7e3bb0e Initial commit
# git diff a612769 907df30 /etc/squid/squid.conf
diff --git a/squid/squid.conf b/squid/squid.conf
index 0e08217..e630ed9 100644
--- a/squid/squid.conf
+++ b/squid/squid.conf
@@ -7876,9 +7876,3 @@ forwarded_for off
# not all I/O types supports large values (eg on Windows).
#Default:
# Use operating system limits set by ulimit.
-
-#httpd_accel_host virtual
-#httpd_accel_port 80
-#httpd_accel_with_proxy on
-#httpd_accel_uses_host_header on
-
Если бы мне нужно было получить полное содержимое конкретной версии файла, я бы использовалgit ls-tree
(для получения sha1 файлового блоба )и git cat-file
для его вывода. например.
# git cat-file blob "$(git ls-tree a612769 /etc/squid/squid.conf |
awk '{print $3}')" > /tmp/squid.conf.a612769