Bidouillages sur les scripts, quelques-uns ré-écrits en Python (plus rapide).
This commit is contained in:
parent
eccfc292a1
commit
e6b27d3e85
|
@ -48,7 +48,7 @@ while read ab; do
|
|||
for i in "${supprimable[@]}"; do
|
||||
if true; then # diff -q "$orig" "$i" > /dev/null; then
|
||||
qi="${i//\'/$q}"
|
||||
echo "mv -i '$qi' '${qi%/*}/.%${qi##*/}' # '${orig//\'/$q}'"
|
||||
echo "[ -e '$qi' ] && mv -i '$qi' '${qi%/*}/.%${qi##*/}' # '${orig//\'/$q}'"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
|
|
@ -1,5 +1,12 @@
|
|||
#!/bin/zsh
|
||||
|
||||
# masque les dossiers qui ne contiennent que des fichiers dont le nom est
|
||||
# .%fichier, récursivement (les dossiers sont masqués en préfixant ".%" à
|
||||
# leur nom, donc les dossiers ne contenant que des fichiers / dossiers
|
||||
# masqués le seront eux aussi.
|
||||
# Un dossier n'est pas masqué ssi il contient au moins un fichier
|
||||
# (regular file) ou dossier non masqué.
|
||||
|
||||
setopt dotglob
|
||||
|
||||
dohide() {
|
||||
|
@ -19,7 +26,7 @@ dohide() {
|
|||
si=$(($si-1))
|
||||
dohide "${subdirs[si]}"
|
||||
done
|
||||
for x in *(N); do
|
||||
for x in *(/,.NoN); do # N = pas d'erreur quand vide, oN = order none, / = dossiers, . = fichiers
|
||||
if [ "${x[0,2]}" != ".%" ]; then
|
||||
pseudo_empty="0"
|
||||
break;
|
||||
|
|
11
remdoubles
11
remdoubles
|
@ -42,14 +42,19 @@ unset supprimable
|
|||
n=0
|
||||
orig=""
|
||||
q="'\\''" # escaped quote.
|
||||
sort | while read ab; do
|
||||
#sort | \
|
||||
while read ab; do
|
||||
sum="${ab%% *}"
|
||||
nom="${ab#* }"
|
||||
if [ "$sum" != "$oldsum" ]; then
|
||||
if [ -n "$orig" ]; then
|
||||
for i in "${supprimable[@]}"; do
|
||||
if diff -q "$orig" "$i" > /dev/null; then
|
||||
echo "rm '${i//\'/$q}'"
|
||||
if [ -e "$orig" ] && [ -e "$i" ] && cat "$i" | diff -q "$orig" - > /dev/null; then
|
||||
destdir="delete/${i%/*}"
|
||||
[ -e "$destdir" ] || mkdir -p "$destdir"
|
||||
mv -i "$i" "$destdir"
|
||||
echo -n '.'
|
||||
#echo "myrm '${i//\'/$q}'"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
|
48
remdoubles.py
Executable file
48
remdoubles.py
Executable file
|
@ -0,0 +1,48 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
import sys
|
||||
import os
|
||||
import errno
|
||||
import shutil
|
||||
|
||||
def identicalFiles(pathA, pathB):
|
||||
bufsize = 4096
|
||||
with open(pathA, 'rb') as a:
|
||||
with open(pathB, 'rb') as b:
|
||||
while True:
|
||||
dataA = a.read(bufsize)
|
||||
dataB = b.read(bufsize)
|
||||
if dataA != dataB:
|
||||
return False
|
||||
if not dataA:
|
||||
return True
|
||||
|
||||
oldhash = ""
|
||||
original = ""
|
||||
supprimable = []
|
||||
for line in sys.stdin:
|
||||
hash = line[0:48]
|
||||
file = line[50:-1]
|
||||
if hash != oldhash:
|
||||
if original != "":
|
||||
for i in supprimable:
|
||||
print i
|
||||
if os.path.exists(i) and identicalFiles(original, i):
|
||||
destfile = "delete/" + i
|
||||
try:
|
||||
os.makedirs(os.path.dirname(destfile))
|
||||
except OSError as e:
|
||||
if e.errno == errno.EEXIST:
|
||||
pass
|
||||
else:
|
||||
raise
|
||||
shutil.move(i, destfile);
|
||||
supprimable = []
|
||||
original = ""
|
||||
if file[0:2] == 'c/': # Delete files in the directory named c
|
||||
supprimable.append(file)
|
||||
else:
|
||||
if original == "" and os.path.exists(file):
|
||||
original = file
|
||||
|
||||
oldhash = hash
|
12
unhide.py
Executable file
12
unhide.py
Executable file
|
@ -0,0 +1,12 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
import shutil;
|
||||
import sys;
|
||||
|
||||
for dir in sys.stdin:
|
||||
file = sys.stdin.next()
|
||||
if file[0:2] == ".%":
|
||||
dir = dir[:-1]
|
||||
file = file[:-1]
|
||||
shutil.move(dir + '/' + file, dir + '/' + file[2:])
|
||||
print "",
|
3
unhide.py.sh
Executable file
3
unhide.py.sh
Executable file
|
@ -0,0 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
find "$@" -depth -name '.%*' -printf '%h\n%f\n' | ./unhide.py
|
Loading…
Reference in New Issue
Block a user