HXCOPY(1) HTML-XML-utils HXCOPY(1)

hxcopy - کپی یک فایل HTML و به‌روزرسانی پیوندهای نسبی آن

hxcopy [ -i old-URL ] [ -o new-URL ] [ -s ] [ -v ] [ file-or-URL [ file-or-URL ] ]

دستور hxcopy آرگومان اول خود را در آرگومان دوم کپی می‌کند و هم‌زمان پیوندهای نسبی را به‌روزرسانی می‌نماید. فرض می‌شود که ورودی از نوع HTML یا XHTML است و ممکن است در طول این فرآیند قالب‌بندی آن کمی تغییر کند.

اگر آرگومان دوم حذف شود، hxcopy خروجی را در خروجی استاندارد می‌نویسد. در این حالت گزینه -o الزامی است. اگر آرگومان اول نیز حذف شود، hxcopy از ورودی استاندارد می‌خواند. در این حالت گزینه -i الزامی است.

گزینه‌های زیر پشتیبانی می‌شوند:

به‌منظور به‌روزرسانی پیوندهای نسبی، طوری عمل می‌کند که گویی old-URL مکانی است که ورودی از آنجا کپی می‌شود. در صورت عدم استفاده از این گزینه، مکان واقعی آرگومان اول برای محاسبه پیوندهای نسبی به کار می‌رود.
به‌منظور به‌روزرسانی پیوندهای نسبی، طوری عمل می‌کند که گویی new-URL مکانی است که ورودی به آنجا کپی می‌شود. در صورت عدم استفاده از این گزینه، مکان واقعی آرگومان دوم برای محاسبه پیوندهای نسبی به کار می‌رود.
پیوندها به خود سند را نیز جایگزین می‌کند. این گزینه بر نحوه برخورد با URLهای خالی تأثیر می‌گذارد؛ یعنی پیوندهایی به خود سند که صراحتاً نام سند را ذکر نمی‌کنند. بدون گزینه -s, پیوندهای ضمنی به خود سند (href="")، به بخشی از خود سند (href="#foo") یا به یک پرس‌وجو روی خود سند (href="?query") تغییر نمی‌کنند و بنابراین به (بخشی از) سند جدید ارجاع خواهند داد. با گزینه -s, این پیوندها بازنویسی می‌شوند تا به‌جای آن به (بخشی از) سند قدیمی اشاره کنند.
شماره نسخه را چاپ کرده و بلافاصله خارج می‌شود.

برای استفاده از پیشکار (پروکسی) جهت دریافت فایل‌های راه‌دور، متغیرهای محیطی http_proxy و ftp_proxy را تنظیم کنید. برای مثال:

http_proxy="http://localhost:8080"

برخلاف آخرین آرگومان دستور cp(1)، آخرین آرگومان hxcopy باید یک فایل باشد، نه یک دایرکتوری.

آرگومان دوم باید یک فایل محلی باشد. نوشتن مستقیم روی یک URL هنوز پیاده‌سازی نشده است. برای دور زدن این محدودیت، hxcopy file.html http://example.org/file.html را با hxcopy -o http://example.org/file.html file.html tmp.html جایگزین کرده و سپس فایل tmp.html را با استفاده از دستور دیگری مانند curl(1) روی URL مورد نظر بارگذاری کنید. با این حال، آرگومان اول می‌تواند یک URL باشد؛ hxcopy فایل داده‌شده را دانلود خواهد کرد (در حال حاضر تنها پروتکل HTTP پشتیبانی می‌شود).

فرض کنید فایل HTML با نام foo.html حاوی یک پیوند نسبی به "../bar.html" باشد. در اینجا چند نمونه دستور آورده شده است:

فایل foo.html در bar/foo.html کپی می‌شود و پیوند نسبی به "../bar.html" به "../../bar.html" تبدیل می‌گردد.
فایل foo.html در ../foo.html کپی می‌شود و پیوند نسبی به "../bar.html" به‌صورت "bar.html" بازنویسی می‌شود.
فایل file1.html در file2.html کپی می‌شود و پیوند نسبی به "../bar.html" به‌صورت "bar.html" بازنویسی می‌شود. دستوری شبیه به این برای به‌روزرسانی فایل‌هایی که بعداً روی سرور بارگذاری می‌شوند مفید است.

cp(1), curl(1), hxwls(1)

9 Dec 2008 7.x