svn status --no-ignore | grep '^[I?]' | cut -c 9- | while IFS= read -r f; do rm -rf "$f"; done
এটিতে নিম্নলিখিত বৈশিষ্ট্যগুলি রয়েছে:
- উভয় অবহেলিত এবং চিহ্নবিহীন ফাইল মুছে ফেলা হয়
- কোনও ফাইলের নামটিতে সাদা স্থান থাকলেও এটি কাজ করে (নতুন লাইন বাদে, তবে
--xml
বিকল্পটি ব্যবহার না করে এবং এক্সএমএল ফলাফলকে পার্স করা ব্যতীত অন্য অনেক কিছুই করা যায় না )
- এটি
svn status
ফাইলের নামের আগে অন্যান্য স্থিতির অক্ষরগুলি মুদ্রণ করেও কাজ করে (এটি ফাইলগুলির ট্র্যাক না হওয়ার কারণে নয়, তবে কেবল ক্ষেত্রে ...)
- এটি কোনও POSIX- অনুবর্তী সিস্টেমের মধ্যে কাজ করা উচিত
আমি নীচে থাকা একটি শেল স্ক্রিপ্ট ব্যবহার করি svnclean
:
#!/bin/sh
# make sure this script exits with a non-zero return value if the
# current directory is not in a svn working directory
svn info >/dev/null || exit 1
svn status --no-ignore | grep '^[I?]' | cut -c 9- |
# setting IFS to the empty string ensures that any leading or
# trailing whitespace is not trimmed from the filename
while IFS= read -r f; do
# tell the user which file is being deleted. use printf
# instead of echo because different implementations of echo do
# different things if the arguments begin with hyphens or
# contain backslashes; the behavior of printf is consistent
printf '%s\n' "Deleting ${f}..."
# if rm -rf can't delete the file, something is wrong so bail
rm -rf "${f}" || exit 1
done