mit" Touch " Verzeichnisse erstellen?
1) im Verzeichnis" A":
finden . -Typ f > a.txt
2) im Verzeichnis "B":
cat a.txt | while read DATEINAMEN; do touch "$DATEINAMEN"; done
3)
Ergebnis: Das 2) "erstellt die Dateien" [ich meine nur mit demselben Dateinamen, aber mit 0 Byte Größe] ok. Wenn sich jedoch im Verzeichnis "A" Unterverzeichnisse befinden, kann der 2) die Dateien im Unterverzeichnis nicht erstellen, da sich keine Verzeichnisse darin befinden.
Frage: Gibt es einen Weg, den "touch" erzeugen kann verzeichnisse?
2 answers
Was ist Ihr gewünschtes Ergebnis?
Wenn Sie versuchen, eine Verzeichnisstruktur zu duplizieren, gibt es einfachere Möglichkeiten. Synchronisierungslösungen kommen mir zuerst in den Sinn.
Z. B.
rsync -a /source/dir/ /dest/dir/ --include \*/ --exclude \*
Dadurch wird die gesamte Verzeichnisstruktur neu erstellt. Sie können dann Ihren Touch-Befehl ausführen, um den Rest zu beenden.
Wie bereits erwähnt, können wir möglicherweise eine elegantere Lösung finden, wenn wir das vollständige Problem kennen:)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-01-17 09:34:49
Sie könnten dieses Skript verwenden. Sie müssen chmod +x scriptname
#!/usr/bin/env ruby
# touchMakingDirs: a Ruby script to be able to touch a file and optionally create the directories necessary
# by Dan Rosenstark 2013-03-18
if __FILE__ == $0
if ARGV.length == 0
puts "Sorry, include one argument for filename"
exit
end
filename = ARGV[0]
puts "Will touch file #{filename}"
path = File.dirname(filename)
#filename = File.basename(filename)
`mkdir -p \"#{path}\"`
`touch \"#{filename}\"`
end
Es hat in ein paar kleinen Tests funktioniert. Lass mich wissen, ob es einen Testfall gibt, den ich verpasst habe. Ich benutze es wie folgt: touchMakingDirs blah/blah/whatever/who.txt
wo ich das Skript touchMakingDirs benannt und in meinen Pfad eingefügt habe.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-03-18 19:42:58