Directory Content Scanner
The Directory Content Scanner is a Python-based utility designed to recursively scan directories, presenting both file paths and their content. It's an invaluable tool for in-depth content exploration and debugging within nested file structures.
🚀 Getting Started
📋 Prerequisites
- Python 3.x
🛠️ Installation
-
Clone the repository:
git clone https://github.com/kevinveenbirkenbach/directory-content-scanner.git -
Navigate to the cloned directory:
cd directory-content-scanner
📖 Usage
Run the Python script, specifying the target directory and any desired filters:
python3 scan.py /path/to/directory [options]
Options:
To show the help page execute:
python3 scan.py /path/to/directory --help
paths: List of files or directories to scan. This is a positional argument.--file-types: Filter by file types (e.g.,.txt,.log). Only files with these extensions will be processed.--ignore-file-strings: Ignore files and folders containing these strings. Useful for excluding specific files or directories.--ignore-hidden: Ignore hidden directories and files (those starting with a dot).-v,--verbose: Enable verbose mode. This will print additional information about skipped files.--no-comments: Remove comments from the displayed content based on file type. Comments in supported file types (Python, JS, C, CPP, H) will be stripped.--compress: Compress code (for supported file types). The content will be displayed in compressed form.--path-contains: Display files whose paths contain one of these strings. Useful for narrowing down the scan to specific parts of the directory structure.--content-contains: Display files containing one of these strings in their content. The file's content will be checked, and only matching files will be shown.
⚠️ Caution
Exercise caution when scanning directories with large files. The script may produce extensive output. Always assess the data volume before executing the script.
🤝 Contributing
Contributions via pull requests are welcome. For significant modifications, kindly open an issue first to discuss the proposed changes.
✍️ Author
Kevin Veen-Birkenbach
- 📧 Email Kevin
- 🌐 Website
📜 License
This project is licensed under the GNU Affero General Public License v3.0. The complete license text is available in the LICENSE file.
🙏 Acknowledgements
Special thanks to OpenAI's ChatGPT model for assistance. Dive deeper into the creation process here, here and here.