1) в каталоге "А":
находить . -тип f> a.txt
2) в каталоге "Б":
кот a.txt | пока читаешь FILENAMES; коснитесь "$ FILENAMES"; сделанный
3)
Результат: 2) "создает файлы" [я имею в виду только с тем же именем файла, но с размером 0 байт] хорошо. Но если в каталоге "A" есть подкаталоги, то 2) не может создавать файлы в подкаталоге, потому что в нем нет каталогов.
Вопрос: есть ли способ, которым "прикосновение" может создавать каталоги?
2 ответа
Каков ваш желаемый конечный результат?
Если вы пытаетесь продублировать структуру каталогов, есть более простые способы. Решения по синхронизации приходят на ум в первую очередь.
например
rsync -a /source/dir/ /dest/dir/ --include \*/ --exclude \*
Это воссоздает всю структуру каталогов. Затем вы можете запустить сенсорную команду, чтобы закончить остальные.
Как уже упоминалось ранее, мы сможем найти более элегантное решение, если будем знать всю проблему :)
Вы можете использовать этот скрипт. Вам нужно использовать 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
Это сработало в нескольких небольших тестах. Дайте мне знать, если есть тестовый пример, который я пропустил. Я использую его так: touchMakingDirs blah/blah/whatever/who.txt
где я назвал скрипт touchMakingDirs и поместил его на моем пути.